codevs1049 棋盤染色

2022-05-09 17:20:38 字數 1444 閱讀 3556

[codevs1049]棋盤染色

試題描述

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

輸入

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

輸出

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

輸入示例

11100

11000

10000

01111

11111

輸出示例

1

資料規模及約定

題解

迭代加深搜尋,注意需要剪剪枝、固定搜尋順序等技巧。

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

const int buffersize = 1 << 16;

char buffer[buffersize], *head, *tail;

inline char getchar()

return *head++;

}int read()

while(isdigit(c))

return x * f;

}#define maxn 6

char map[maxn][maxn];

bool a[maxn][maxn];

struct point

point(int _, int __): x(_), y(__) {}

} q[maxn*maxn];

bool vis[maxn][maxn];

int hd, tl, dx[4] = , dy[4] = ;

bool isin(int x, int y)

void bfs(int sx, int sy)

} return ;

}bool check()

return 1;

}bool dfs(int ni, int nj, int cur, int k)

if(dfs(ti, tj, cur, k)) return 1;

return 0;

}int main()

return 0;

}

Codevs 1049 棋盤染色

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

Codevs 1049 棋盤染色

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

1049 棋盤染色

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