Il Gioco dellX

题目:两人轮流在n*n的平行四边形格子中放入黑白两色的棋子,

如果黑色方能给创造一个从1~n行的连续线段则黑方胜,否则白方胜利。

分析:图论,搜索。利用dfs或floodfill求解,寻找从顶端能到达低端的解即可。

说明:目标600题╮(╯▽╰)╭。

#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;char maps[202][202];int dxy[6][2] = {-1,-1,-1,0,0,-1,0,1,1,0,1,1};int dfs(int x, int y, int n){if (x == n) return 1;if (x < 0 || x >= n || y < 0 || y >= n) return 0;if (maps[x][y] != 'b') return 0;maps[x][y] = '#';int max = 0;for (int k = 0 ; k < 6 ; ++ k)max |= dfs(x+dxy[k][0], y+dxy[k][1], n);return max; }int main(){int n,t = 1;while (~scanf("%d",&n) && n) {for (int i = 0 ; i < n ; ++ i)scanf("%s",maps[i]);int flag = 0;for (int i = 0 ; i < n ; ++ i)if (maps[0][i] == 'b' && dfs(0, i, n))flag = 1;printf("%d ",t ++);if (flag)printf("B\n");else printf("W\n");}return 0;}

,有人要进来,有一些人不得不离开。

Il Gioco dellX

相关文章:

你感兴趣的文章:

标签云: