洛谷——P1838 三子棋I
P1838 三子棋I
题目描述
小a和uim喜欢互相切磋三子棋。三子棋大家都玩过是吗?就是在九宫格里面OOXX(别想歪了),谁连成3个就赢了。
由于小a比较愚蠢,uim总是让他先。
我们用9个数字表示棋盘位置:
123 456 789 所有的棋谱都是已经结束的棋局,要么一方获胜,要么平局。
今天,他们下了一下午的棋,小a为了提高技术,录下了很多棋谱。他想知道,一盘棋结束时,到底是谁赢。
输入格式
一行,一串数字,表示落子的地点。小a总是先下
输出格式
一行,如果小a赢,输出“xiaoa wins.”。如果uim赢,输出“uim wins.”。如果平局,输出“drew.”
输入输出样例
输入 #1复制
5237649
输出 #1复制
xiaoa wins.
输入 #2复制
539128647
输出 #2复制
drew.
#include<bits/stdc++.h>
using namespace std;
string s;
int a[3][3];
int main()
{cin>>s;for(int i=0;i<s.size();i++){int j=s[i]-'0'-1;a[j/3][j%3]=i%2;}if(9==s.size()){int j=s[8]-'0'-1;int row=j/3,col=j%3;if(0==a[row][0]&&0==a[row][1]&&0==a[row][2]) cout<<"xiaoa wins."<<endl;else if(0==a[0][col]&&0==a[1][col]&&0==a[2][col]) cout<<"xiaoa wins."<<endl;else if(0==a[0][0]&&0==a[1][1]&&0==a[2][2]) cout<<"xiaoa wins."<<endl;else if(0==a[0][2]&&0==a[1][1]&&0==a[2][0]) cout<<"xiaoa wins."<<endl;else cout<<"drew."<<endl;}else if(1==s.size()%2) cout<<"xiaoa wins."<<endl;else cout<<"uim wins."<<endl;return 0;}
洛谷——P1838 三子棋I相关推荐
- 洛谷——P1917 三子棋II
P1917 三子棋II 题目描述 小a和uim喜欢互相切磋三子棋.三子棋大家都玩过是吗?就是在九宫格里面OOXX(别想歪了),谁连成3个就赢了. 虽然小a很努力地记录棋谱,可还是下不过uim. 由于小 ...
- P1838 三子棋I
P1838 三子棋I 提交18.40k 通过6.45k 时间限制1.00s 内存限制125.00MB 提交答案加入题单复制题目 做题计划(首页) 个人题单 团队题单 保存 选择团队 保存 题目提供者k ...
- 三子棋の胜负判断(洛谷P1838题题解,Java语言描述)
题目要求 P1838题目链接 分析 我在想是不是要把这个题再写成扫雷那样的矩阵判断,想换个feel,那就用Set来处理. 众所周知Set有好处,查找快,虽说这只是九宫格三子棋,但contains()就 ...
- 洛谷 P1985 翻转棋
P1985 翻转棋 题目描述 农夫约翰知道,聪明的奶牛可以产更多的牛奶.他为奶牛设计了一种智力游戏,名叫翻转棋. 翻转棋可以分成 M × N 个格子,每个格子有两种颜色,一面是黑的,一面是白的. 一旦 ...
- 洛谷 1541 乌龟棋
看题 这显然是一道线性的dp 如何设计状态呢? 看看题目,总共只有4张牌,而且每张牌的个数不超过40 于是状态就很好设计了 方程如下 dp[i][j][k][l]=max(dp[i-1][j][k][ ...
- 洛谷P1541 乌龟棋
原题传送门 一道比较简单易懂的线性DP题: 设状态dp[a][b][c][d]表示使用数量分别为a, b, c, d张的不同的牌 num数组存储每一个位置的分值 r = a + b * 2 + c * ...
- 洛谷 1541 乌龟棋——dp
题目:https://www.luogu.org/problemnew/show/P1541 以用了几张牌为阶段.注意知道了用了4种牌各几张后,当前位置就是确定的,所以不用记录什么的. #includ ...
- 洛谷 深基 第4部分 基础数学与数论(19-21课)
洛谷 深基 第4部分 基础数学与数论 第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...
- 【洛谷】【博弈搜索】P4363 [九省联考2018]一双木棋chess
洛谷 P4363 [九省联考2018]一双木棋chess 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...
最新文章
- sql 外连接的写法。
- 按单词逆序句子(含标点)
- custom field further usage - add into UI and report
- BZOJ 2003 [Hnoi2010]Matrix 矩阵
- python是值传递还是引用传递_Python里参数是值传递还是引用传递?
- 错误:The project was not built due to Unparsed aapt error(s)
- Linux系统基础(二)
- Windows Print Spooler 远程代码执行漏洞(CVE-2021-34527)
- SQL Server数据库迁移最佳实践,可降低风险和停机时间
- python源代码(create,huafen,doc)
- 柯尼卡美能达c353改语言,柯尼卡美能达bizhub c353c253c203维修手册中文部分2.pdf
- 快递电子面单打印接口对接demo-JAVA
- 【JAVA基础速过】第3章 数组+Arrays工具类的使用
- 使用gevent的Pool实现异步并发
- ACE编辑器ace-editor笔记
- java读取共享文件夹
- PDF怎么用免费软件转换成word?推荐个高性价比转换方法
- 强连通基础与例题(Kosaraju算法与Tarjan算法)
- ubuntu14.04 64位安装H3C iNode客户端
- mac 下Protege中使用OWL Viz插件
热门文章
- 七天LLVM零基础入门(Linux版本)------总结
- 转贴:23种设计模式的有趣见解
- Nginx 实现封杀恶意访问
- dell R710 更换raid卡后,raid卡信息没有了,处理方案
- no active checks on server [192.168.1.107:10051]: host [ ] not found
- 【Shell】获取文件名和扩展名
- 【Oracle】RedHat 6.5 安装 11g数据库
- sqlserver数据导入hdfs和hive的解决方案
- 集群环境下定时调度的解决方案之Quartz集群
- Web方式预览Office/Word/Excel/pdf文件解决方案