由數字00組成的方陣中,有一任意形狀閉合圈,閉合圈由數字11構成,圍圈時只走上下左右44個方向。現要求把閉合圈內的所有空間都填寫成22.例如:6 \times 66×6的方陣(n=6n=6),塗色前和塗色後的方陣如下:
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1
輸入格式:
每組測試資料第一行乙個整數n(1 \le n \le 30)n(1≤n≤30)
接下來nn行,由00和11組成的n \times nn×n的方陣。
方陣內只有乙個閉合圈,圈內至少有乙個00。
//感謝黃小u飲品指出本題資料和資料格式不一樣. 已修改(輸入格式)
輸出格式:
已經填好數字22的完整方陣。
輸入樣例#1:複製
6
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
輸出樣例#1:複製
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1
題意:將閉合圈內的數字改為2.
**如下:
#include
#include
#include
#include
#include
using namespace std;
int mp[35][35];
int vis[35][35]; // 標記陣列
int fx[4]=;
int fy[4]=;
int n;
struct node
;queueq;
node p;
void bfs(int x,int y)}}
}int main()
}for(int i=0;i<=n+1;i=i+n+1) // 將第 i行 j 列 加上0
}for(int i=0;i<=n+1;i=i+n+1) // 將第 j 行 i 列 加上0
}bfs(0,0); // bfs 找出所有在圈外的0並標記
for(int i=1;i<=n;i++)
printf("\n");
}return 0;
}
P1032 字串變換 bfs
評測記錄 給若干個變化規則,表示a中的a xa x ax 子串可以變化為b xb x bx 中的子串,求至少要多少次變化才可以變為b子串。暴力廣蒐用map mapma p庫判重。include include include include include using namespace std q...
P1032 字串變換
思路 採用bfs 我們遍歷字串a的每個字元,判斷當前字串i位置之後可不可以替換,如果可以替換,我們就把替換後的字串 a 放入佇列。如果出現的我們想要的字串,根據bfs的性質,那麼就直接記錄此時的步數。1 include 2 include 3 include 4 include 5 include ...
P1032 字串變換
迭代加深難題 右手進入傳送門 大意是這樣的 給定兩個字串a,b以及至多六個變換規則 規則指a1 b1,a2 b2,在a中的子串 a1可以變換為b1,a2可以變換為 b2 求最少變換步數,若在10步 包含10步 以內能將a變換為b,則輸出最少的變換步數 否則輸出 no answer 看到題目要求的10...