FZU --- 2283 Tic-Tac-Toe 【三子棋小模拟】
来源:互联网 发布:c 编程培训中心 编辑:程序博客网 时间:2024/06/05 03:15
//题意, 给你一个目前的状态, 问一个人是否可以在两步之内获胜, (现在该他, 然后对手, 然后再是他).
直接模拟下棋判一下是否可以赢就是了. 即第一次下完了以后, 他是否还有两种赢的状态, 有就一定会赢, 否则就不能赢.(和CF一道模拟五子棋的有点像)
AC Code
/** @Cain*/int n,k;char a[5][5];bool check(char x) //判断当前x棋子再棋盘中是否能赢.{ if(x==a[1][1]&&a[1][1]==a[1][2]&&a[1][2]==a[1][3])return true; if(x==a[2][1]&&a[2][1]==a[2][2]&&a[2][2]==a[2][3])return true; if(x==a[3][1]&&a[3][1]==a[3][2]&&a[3][2]==a[3][3])return true; if(x==a[1][1]&&a[1][1]==a[2][1]&&a[2][1]==a[3][1])return true; if(x==a[1][2]&&a[1][2]==a[2][2]&&a[2][2]==a[3][2])return true; if(x==a[1][3]&&a[1][3]==a[2][3]&&a[2][3]==a[3][3])return true; if(x==a[1][1]&&a[1][1]==a[2][2]&&a[2][2]==a[3][3])return true; if(x==a[1][3]&&a[1][3]==a[2][2]&&a[2][2]==a[3][1])return true; return false;}bool Find2(char x){ int ans = 0; for(int i=1;i<=3;i++){ for(int j=1;j<=3;j++){ if(a[i][j] == '.'){ a[i][j] = x; if(check(x)) ans++; a[i][j] = '.'; } } } if(ans >= 2) return true; return false;}bool Find1(char x){ for(int i=1;i<=3;i++){ for(int j=1;j<=3;j++){ if(a[i][j] == '.'){ a[i][j] = x; if(check(x) || Find2(x)) return true; a[i][j] = '.'; } } } return false;}void solve(){ char s[5]; for(int i=1;i<=3;i++){ for(int j=1;j<=3;j++){ scanf("%s",s); a[i][j] = s[0]; } } char x,y; scanf("%s",s); x = s[0]; if(x == 'o') y='x'; else y = 'o'; if(check(y)) printf("Cannot win!\n"); //目前对手就可以赢. if(check(x) || Find1(x)) //目前Kim就可以赢或者走一步会两步后可以赢. printf("Kim win!\n"); else printf("Cannot win!\n");}int main(){ int t; scanf("%d",&t); while(t--){ solve(); }}
阅读全文
0 0
- FZU --- 2283 Tic-Tac-Toe 【三子棋小模拟】
- FZU 2283 Tic-Tac-Toe (模拟)
- FZU Tic-Tac-Toe
- Tic-Tac-Toe FZU
- C. Tic-tac-toe【模拟】
- POJ 2361 Tic Tac Toe 模拟
- cf 3C Tic-tac-toe(模拟)
- poj 3075 Tic-Tac-Toe 五子棋模拟
- poj 2361 Tic Tac Toe 五子棋模拟
- (fzu) Problem L Tic-Tac-Toe(水)
- 【FZUoj 2283 Tic-Tac-Toe】& dfs & 博弈
- Tic-Tac-Toe
- [cf]Tic-tac-toe
- C - Tic-tac-toe
- Minimax-Tic Tac Toe
- Design Tic-Tac-Toe
- Design Tic-Tac-Toe
- Design Tic-Tac-Toe
- wildfly8.1部署注意事项
- 神经网络基础
- Subway POJ
- 树莓派配置Arduino及其与ROS的通信
- centos安装sqlite-deve
- FZU --- 2283 Tic-Tac-Toe 【三子棋小模拟】
- 大型网站架构演变总结
- 组合数的各种性质和定理
- C++ <sstream>头文件的应用
- 类图层与层之间的复制
- 51Nod拉勾专业算法能力测评
- hdu3861 The King’s Problem 强连通分量+二分图匹配
- 后缀数组
- C++ auto 的应用