這還是乙個搜尋題,難度較低,但我提交第三次才ac..
觀察0地圖左上角的上面和左面都是一,所以先把他找粗來,然後設成start,然後dfs找到與他聯通的塊,塗成2即可。再說一下自己犯的低階錯誤:1.當找到坐上角時,必須先break掉裡面的for,然後bool變數必須放在第乙個for的裡面,但我放在了上面,,,2.找到開始座標後先打上標記。3.忘記加dfs(tx,ty)了
1.預處理正確性需要保證,低階錯誤要手動避免
2.再去練習難度較大的搜尋題目
3.尋找好條件的客觀規律,然後去解決
4.提交的時候別自信滿滿,靜下心來想一想,noip上是黑盒!
**
#include#include#include
#include
#include
#include
using
namespace
std;
intn;
int mp[40][40],book[40][40
];int dx[4]=;
int dy[4]=;
intstartx,starty;
bool flag=true
;void dfs(int x,int
y)
else
continue
; }
return;}
intmain()
}mp[
1][0]=6
; mp[
0][1]=6
;
for(int i=1;i<=n;i++)}}
}
}//coutcoutmp[startx][starty]=2
;
for(int i=1;i<=n;i++)
cout
<}
return0;
}
P1162 填塗顏色
題目描述 由數字000組成的方陣中,有一任意形狀閉合圈,閉合圈由數字111構成,圍圈時只走上下左右444個方向。現要求把閉合圈內的所有空間都填寫成222.例如 6 66 times 66 6的方陣 n 6n 6n 6 塗色前和塗色後的方陣如下 0 0 0 0 0 0 0 0 1 1 1 1 0 1 ...
P1162 填塗顏色(dfs)
由數字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...
洛谷P1162 填塗顏色
由數字0組成的方陣中,有一任意形狀閉合圈,閉合圈由數字1構成,圍圈時只走上下左右4個方向。現要求把閉合圈內的所有空間都填寫成2.例如 6 6的方陣 n 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...