UVA11520填充正方形

2021-06-27 22:49:08 字數 452 閱讀 7719

題意:

給你乙個n*n的矩陣,讓你往裡面新增大寫字母,矩陣有的字母已經給填好了,然後要求是每個格仔都不能與他相鄰的格仔的大寫字母相同,如果有多個答案,輸出從上到下,從左到右所連線的成的那個n*n長度的字串的ascii碼最小。

思路:大家都知道4色定理吧,四種顏色能把任何地圖都畫出來,並且相鄰的顏色不同,那麼這個題目是26種,所以肯定不存在沒有解的情況,所以我們只要從上到下,從左到右依次填寫字母,已經填寫好的就不用填寫了,沒有填寫好的就填上能填的最小的那個字母。

#include

char map[12][12];

int main ()}}

printf("case %d:\n" ,cas ++);

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

puts(map[i]+1);

}return 0;

}

Uva 11520 填充正方形

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

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...