思维 POJ - 2361 Tic Tac Toe
思维
Tic Tac Toe
解题思路
只需要判断几种不符合的情况即可,设 X 的步数是 xnumxnumxnum,O 的步数是 onumonumonum,则要满足:
- X 先走,故 xnum=onum∣∣xnum=onum+1xnum = onum \ || \ xnum = onum + 1xnum=onum ∣∣ xnum=onum+1
- 若 xnum=onumxnum = onumxnum=onum,说明此时 O 刚走完,下一步是 X 走。此时 X 不可能获胜。
- 若 xnum=onum+1xnum = onum + 1xnum=onum+1,说明此时 X 刚走完,下一步是 O 走。此时 O 不可能获胜。
参考代码
//poj GCC
#include<iostream>
#include<vector>
#include<cstring>
#include<cstdio>
#include<climits>
#include<cmath>
#include<algorithm>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<stack>
//#define LOCAL //提交的时候一定注释
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
typedef long long LL;
using namespace std;
const int maxn = 1e5 + 10;
const int MOD = 1e9 + 7;
const int N = 13;int readint() {int x; scanf("%d", &x); return x;
}char M[5][5];bool win(char c) {for(int i = 0; i < 3; i++) {int j;for(j = 0; j < 3 && M[i][j] == c; j++);if (j == 3) return true;for(j = 0; j < 3 && M[j][i] == c; j++);if (j == 3) return true;}int i;for(i = 0; i < 3 && M[i][i] == c; i++);if (i == 3) return true;for(i = 0; i < 3 && M[i][2 - i] == c; i++);if (i == 3) return true;return false;
}int main() {#ifdef LOCALfreopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endifint t = readint();while (t--) {int xnum = 0, onum = 0;for(int i = 0; i < 3; i++) {scanf("%s", M[i]);for(int j = 0; j < 3; j++) {if (M[i][j] == 'X') xnum++;if (M[i][j] == 'O') onum++;}}bool flag = true;if (xnum == onum || xnum == onum + 1) {if (xnum == onum) {if (win('X')) flag = false;}elseif (win('O')) flag = false;} else flag = false;printf("%s\n", flag ? "yes" : "no");}return 0;
}
思维 POJ - 2361 Tic Tac Toe相关推荐
- python井字棋ai,python 井字棋(Tic Tac Toe)
说明 用python实现了井字棋,整个框架是本人自己构思的,自认为比较满意.另外,90%+的代码也是本人逐字逐句敲的. minimax算法还没完全理解,所以参考了这里的代码,并作了修改. 特点 可以选 ...
- python二维游戏示例_Python实现的井字棋(Tic Tac Toe)游戏示例
本文实例讲述了Python实现的井字棋(Tic Tac Toe)游戏.分享给大家供大家参考,具体如下: 说明 用python实现了井字棋,整个框架是本人自己构思的,自认为比较满意.另外,90%+的代码 ...
- python游戏代码运行不了_无法使我的tic tac toe游戏在python中正确运行
转不到"玩家1"的原因是你的支票中缺少一个空格.你也没有正确地检查一个玩家何时获胜,这就是为什么你会有这种奇怪的行为.你需要检查每个位置,而不仅仅是最后一个.我还添加了对用户输入的 ...
- react中使用构建缓存_通过在React中构建Tic Tac Toe来学习ReasonML
react中使用构建缓存 3. 7. 2018: UPDATED to ReasonReact v0.4.2 3. 7. 2018:更新为ReasonReact v0.4.2 You may have ...
- Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputin ...
- amazon.设计1. tic tac toe
//不觉中 已经全力找工作好久好久了.大概有1年半了.身心疲惫,不要放弃.曙光快来了. 1.tic tac toe //http://www.ntu.edu.sg/home/ehchua/progra ...
- python井字棋游戏代码_Python实现的井字棋(Tic Tac Toe)游戏示例
Python实现的井字棋(Tic Tac Toe)游戏示例 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python实现的井字棋(Tic Tac Toe)游戏示 ...
- C++ 很有趣:编写一个井字游戏 (Tic Tac Toe)
英文原文:C++ is fun: Writing a Tic Tac Toe Game 这个有趣的C++系列打算展示一下使用C++写代码可以和其他主流语言一样高效而有趣.在第二部分,我将向你展示使用C ...
- 圈叉游戏 java_【炫光圈叉棋】炫光圈叉棋 Tic Tac Toe Glow 1.8.1下载_安卓(android)软件下载-魅族溜...
一款炫光风格的圈叉棋游戏,支持单/双人模式.圈叉棋,英文:tic-tac-toe,别名:圈叉游戏.是一种游戏,3*3的9个方格子,先下者画圈,后下者画叉,每人可以在任意没有对方棋子的封闭方格里下一次, ...
- java tic tac toe_请问我这个tic tac toe的游戏代码的问题在哪里
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Scanner in = new Scanner(System.in); final int SIZE =3; int[][] board = new i ...
最新文章
- (转)利用ArcScene进行三维地形模拟
- grunt使用watch和livereload的Gruntfile.js的配置
- 相声演员侯耀文突发疾病去世享年59岁 深切怀念
- 推荐系统笔记(内容推荐)
- tomcat - JVM 配置
- 新款苹果电脑_苹果发布新款MacBookAir 搭载M1芯片7999起
- 玩转spring boot——结合redis
- 2023届IC实习小结
- 【每日一题】7月3日精讲—毒瘤xor
- Democracy Player 0.8.5
- Anaconda中使用图形化界面创建虚拟环境
- 《隋唐演义》二:竞争对手的实力在不断增强
- 大数据技术原理与应用学习笔记(五)
- linux安装音乐软件下载,网易云音乐Linux版
- MATLAB希尔伯特变换
- iphone如何删除“不可删除”的描述文件?(桌面快捷方式web clib)
- 交换机的基本原理与配置
- STC 串口下载电路 - CH340G或CH340N USB转串口以及漏电隔离
- Linux网络——部署yum仓库
- 如何获取这台电脑上登陆过的全部QQ号,