題意:給定乙個n*n的正方形,把剩下的格仔中填滿大寫字母,任意兩個相鄰的格仔字母不同,要求最後字典序最小;
分析:第一想法回溯啊,當然是不對的,100個點回溯會死人的!
其實,可以發現,每個點不可能說,由於前面的決策,後來不能滿足了,相鄰的點有4個,我有26個英文本母。
1 #include 2view code3using
namespace
std;45
const
int maxn = 10 + 5;6
intn;
7char
maps[maxn][maxn];89
10int
main()
1130}31
}32}33
}3435 printf("
case %d:\n
",kase++);
36for(int i=0;i)
37 printf("
%s\n
",maps[i]);
3839}40
return0;
41 }
UVA11520填充正方形
題意 給你乙個n n的矩陣,讓你往裡面新增大寫字母,矩陣有的字母已經給填好了,然後要求是每個格仔都不能與他相鄰的格仔的大寫字母相同,如果有多個答案,輸出從上到下,從左到右所連線的成的那個n n長度的字串的ascii碼最小。思路 大家都知道4色定理吧,四種顏色能把任何地圖都畫出來,並且相鄰的顏色不同,...
OJ 1035 填充正方形
描述 在乙個n n的網格中填寫了一些大寫字母,你的任務是把剩下的格仔中也填滿大寫字母,使得任意相鄰格仔中的字母不同.如果有多種填法,則要求按照從上到下,從左到右的順序把所有格仔連起來得到的字串的字典序應最小.輸入多組測試資料,每組測試資料的第一行為乙個正整數n.1 n 10 接下來n行分別有n個字元...
UVa 1603 破壞正方形
題意 有乙個火柴棍組成的正方形網格,計算至少要拿走多少根火柴才能破壞所有正方形。思路 從邊長為1的正方形開始遍歷,將正方形的邊長和它的實際火柴數儲存起來。之後dfs搜尋。include include using namespace std const int maxn 60 int n,m,bes...