1049 棋盤染色

2022-05-03 11:39:19 字數 1139 閱讀 8612

時間限制: 1 s

空間限制: 128000 kb

題目等級 : ** gold

題解檢視執行結果

有乙個5×5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染色,才能使得所有的黑色格仔都連成一塊。(注:連線是指上下左右四個方向,如果兩個黑色格仔只共有乙個點,那麼不算連線)

輸入描述 input description

輸入包括乙個5×5的01矩陣,中間無空格,1表示格仔已經被染成黑色。

輸出描述 output description

輸出最少需要對多少個格仔進行染色

樣例輸入 sample input

樣例輸出 sample output

資料範圍及提示 data size & hint

分類標籤 tags 點此展開 

搜尋題解:

迭代加深搜

精髓:

只有把色塊連通,改點才能被統計上;否則,tot會偏小。

因此,決定了當前這一坨點一定是乙個連通塊 

ac**:

#include#include

using

namespace

std;

#define n 110

const

int dx=;

const

int dy=;

intn,sx,sy,tot,total;

bool a[n][6],vis[n][6

];void check_dfs(int x,int y)

}bool can(int

x)bool power_dfs(int x,int y,int now,int sum)

for(int j=y+1;j<=5;j++)

}for(int i=x+1;i<=n;i++)}}

return0;

}int

main()} }

for(int i=0;i<=5*n;i++)

}return0;

}

Codevs 1049 棋盤染色

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

Codevs 1049 棋盤染色

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

codevs1049 棋盤染色

codevs1049 棋盤染色 試題描述 有乙個5 5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染色,才能使得所有的黑色格仔都連成一塊。注 連...