題意:有乙個火柴棍組成的正方形網格,計算至少要拿走多少根火柴才能破壞所有正方形。
思路:從邊長為1的正方形開始遍歷,將正方形的邊長和它的實際火柴數儲存起來。之後dfs搜尋。
#include#includeusing
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...