UVa 260 - Il Gioco dell'X
2015-03-06 15:13
260 查看
题目:两人轮流在n*n的平行四边形格子中放入黑白两色的棋子,
如果黑色方能给创造一个从1~n行的连续线段则黑方胜,否则白方胜利。
分析:图论,搜索。利用dfs或floodfill求解,寻找从顶端能到达低端的解即可。
说明:目标600题╮(╯▽╰)╭。
如果黑色方能给创造一个从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; }
相关文章推荐
- 260 Il Gioco dell'X
- UVA 260 Il Gioco dell'X
- 简单dfs:UVA 260 Il Gioco dell'X
- UVA 716(Commedia dell' arte-三维八数码)
- UVA 716 - Commedia dell' arte 逆序数
- UVA 10018 and UVA 701 's reports.
- spoj 861 SWAPS & uva 11990 "Dynamic'' Inversion(动态维护逆序对)
- UVa 167 - The Sultan's Successors, 八皇后问题
- UVA 701 - The Archeologists\' Dilemma
- uva-167 - The Sultan's Successors-八皇后-回溯
- uva 10277 Boastin' Red Socks
- uva 10061 - How many zero's and how many digits ?
- UVA-152- Tree's a Crowd
- uva_10010-Where's Waldorf?
- UVA 658 - It's not a Bug, it's a Feature!
- uva 10404 Bachet's Game
- uva 10817 Headmaster's Headache
- fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
- uva10010 - Where's Waldorf?
- uva 152 Tree's a Crowd