bzoj2638 黑白染色

2022-03-30 13:24:07 字數 1001 閱讀 6574

比較蛋疼的是我們可以先染個底色,再在底色上染別的東西。

由ccz大爺的題解可得。。將目標狀態裡相同顏色的聯通塊縮點後,列舉起點,生成樹里的最大節點深度就是需要的次數了,

如果最大深度是白色的話記得-1.

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

int maxn=2523,xx[4]=,yy[4]=;

7struct

zse[123333];int

tot,last[maxn];

10struct zs1dl[maxn];

11char mp[53][53

];12

int id[53][53

];13

intcol[maxn],d[maxn];

14short

dis[maxn];

15bool

u[maxn];

16int

i,j,k,n,m,ans,cnt;

1718

int ra;char

rx;19 inline int

read()

24 inline void insert(int a,int

b)29

30int

main();

35 cnt++,col[cnt]=mp[i][j]=='

b',id[i][j]=cnt;

36while(l

43else

if(id[x][y])insert(id[x][y],cnt);44}

45}46}

47 ans=1e9;

48for(i=1;i<=cnt;i++)

56 printf("

%d\n

",ans);

57 }

view code

BZOJ2638 黑白染色

試題描述 你有乙個 n times m 的矩形,一開始所有格仔都是白色,然後給出乙個目標狀態的矩形,有的地方是白色,有的地方是黑色,你每次可以選擇乙個連通塊 四連通塊,且不要求顏色一樣 進行染色操作 染成白色或者黑色 問最少操作次數。輸入第一行兩個數 n m 表示矩形大小。接下來n行描述目標狀態,每...

2638 黑白染色

題目鏈結 題目大意 黑白矩陣,每次可以選擇乙個四聯通塊染色,求最少操作次數 題解 將目標狀態裡相同顏色的聯通塊縮點,列舉起點,生成樹里的最大節點深度就是需要的次數了 如果最大深度是白色的話記得 1 我的收穫 bfs樹 include include include include using nam...

E Cover it 黑白染色問題

傳送門哈哈傳遞哈斯防火牆 因為圖 聯通,我 們任取一 點開始遍 歷因為圖聯通,我們任取一點開始遍歷 因為圖聯通,我們任取 一點開始 遍歷 比如從 點1開始 那麼假 設1塗色 比如從點1開始,那麼假設1塗色 比如從點1開 始,那麼 假設1塗 色 那 麼和 1相鄰的 不上色,相鄰的相 鄰上 色那麼和1相...