描述
在乙個n*n的網格中填寫了一些大寫字母,你的任務是把剩下的格仔中也填滿大寫字母,使得任意相鄰格仔中的字母不同.如果有多種填法,則要求按照從上到下,從左到右的順序把所有格仔連起來得到的字串的字典序應最小.
輸入多組測試資料,每組測試資料的第一行為乙個正整數n.(1<=n<=10),接下來n行分別有n個字元代表n*n的網格,為了清晰起見,用』.』代表沒有大寫字母的網格.
輸出對於每組資料輸出填滿大寫字母後的網格.每組測試資料間有乙個空行,最後一組測試資料後面沒有空行.
輸入樣例 1
3...
......
3...
a.....
輸出樣例 1
ababab
ababab
ababab
這個題目看似要考慮到因素有點多,其實是嚇你的,我們只需要考慮不同位置可以填入的最小的數即可,在四個角只有可能是a,b,c在邊線(不包含四個角)只有a,b,c,d在內部只有a,b,c,d,e。附近的資料少了那個那麼它要填入的就是確少的那個字元。
#include #include using namespace std;
int main()
if(i==0&&j==0)
if(i==0&&j==n-1)
if(i==0&&j!=n-1&&j!=0)
if(i==n-1&&j==0)
if(i==n-1&&j==n-1)
if(i==n-1&&j!=0&&j!=n-1)
if(i!=0&&i!=n-1&&j==0)
if(i!=0&&i!=n-1&&j==n-1)
}else
continue;
}for(int i=0; icout<}
return 0;
}
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...