棋盤染色2

2022-02-26 14:22:15 字數 1016 閱讀 5606

【題目描述】

有乙個5*n的棋盤,棋盤中的一些格仔已經被染成了黑色,你的任務是對最少的格仔染色,使得所有的黑色能連成一塊。

【輸入描述】

第一行乙個整數n(n <= 100),接下來n行每行乙個長度為5的01串,1表示所在格仔已經被染成了黑色,0表示所在格仔沒有被染色。

【輸出描述】

輸出乙個整數,表示最少需要染色的格仔數。

【樣例輸入】

511100

11000

10000

01111

11111

【樣例輸出】

170分迭代搜尋(原諒我蒟蒻):

源**:

#include

#include

int x[4]=,y[4]=;

intn,t1,t2,num,total;

bool f[105][6],vis[105][6

];void check(int x,int y) //

遍歷全圖,統計染色點數。

}bool can(int t) //

判斷是否合法。

bool dfs(int x,int y,int now,int sum) //

迭代搜尋,x、y為座標,now表示當前比初始狀態多塗了now個點,sum表示目標是塗sum個點。

for (int a=y+1;a<=5;a++) //

搜尋並連線節點的該行的右邊。

if (!f[x][a])

for (int a=x+1;a<=n;a++) //

同理於上,搜尋節點所在行的下方所有區域。

for (int b=1;b<=5;b++)

if (!f[a][b])

return

false; //

依舊不成立。

}int

main()

}for (int a=0;a<=5*n-total;a++) //

迭代。if (dfs(1,1,0

,a))

}

1050 棋盤染色 2

1050棋盤染色2 題目描述description 有乙個5 n的棋盤,棋盤中的一些格仔已經被染成了黑色,你的任務是對最少的格仔染色,使得所有的黑色能連成一塊。輸入描述input description 第一行乙個整數n 100 接下來n行每行乙個長度為5的01串,1表示所在格仔已經被染成了黑色,0...

1050 棋盤染色 2

時間限制 1 s 空間限制 128000 kb 題目等級 大師 master 題解有乙個5 n的棋盤,棋盤中的一些格仔已經被染成了黑色,你的任務是對最少的格仔染色,使得所有的黑色能連成一塊。輸入描述 input description 第一行乙個整數n 100 接下來n行每行乙個長度為5的01串,1...

1049 棋盤染色

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解檢視執行結果 有乙個5 5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染...