UVa 1603 破壞正方形

2022-06-20 23:36:10 字數 904 閱讀 3035

題意:有乙個火柴棍組成的正方形網格,計算至少要拿走多少根火柴才能破壞所有正方形。

思路:從邊長為1的正方形開始遍歷,將正方形的邊長和它的實際火柴數儲存起來。之後dfs搜尋。

#include#include

using

namespace

std;

const

int maxn = 60

;int

n, m,best,s;

intmap[maxn],size[maxn],fullsize[maxn];

intcontins[maxn][maxn];

int row_match(int x, int y) //

行int col_match(int x, int y) //

列int edges() //

計算火柴根數

void

init()

s = 0; //

s用來為正方形編號

memset(contins, 0, sizeof

(contins));

for (int i = 1; i <= n;i++) //

正方形的邊長,從1開始到n

for (int x = 0; x <= n - i;x++) //

正方形左上角的x座標

for (int y = 0; y <= n - i; y++) //

正方形左上角的y座標

s++;

}}int

find_sqware()

void dfs(int

dep)

for (int i = 0; i < edges(); i++)

}}int

main()

return0;

}

UVA11520填充正方形

題意 給你乙個n n的矩陣,讓你往裡面新增大寫字母,矩陣有的字母已經給填好了,然後要求是每個格仔都不能與他相鄰的格仔的大寫字母相同,如果有多個答案,輸出從上到下,從左到右所連線的成的那個n n長度的字串的ascii碼最小。思路 大家都知道4色定理吧,四種顏色能把任何地圖都畫出來,並且相鄰的顏色不同,...

Uva 11520 填充正方形

題意 給定乙個n n的正方形,把剩下的格仔中填滿大寫字母,任意兩個相鄰的格仔字母不同,要求最後字典序最小 分析 第一想法回溯啊,當然是不對的,100個點回溯會死人的!其實,可以發現,每個點不可能說,由於前面的決策,後來不能滿足了,相鄰的點有4個,我有26個英文本母。1 include 2 3usin...

正方形等分計數總正方形數

如下圖正方形,邊長是1cm,每邊被四等分,求一共分出了多少個正方形。經過手工數 邊長為1 4的正方形 16 邊長為1 2的正方形 9 邊長為3 4的正方形 4 邊長為1的正方形 1 所以一共是 30個正方形。當上述的正方形,邊長被3等分的情況又如何 還是手動數 邊長為1 3的正方形 9 邊長為2 3...