洛谷——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 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...
最新文章
- 压缩人工智能的数据值
- 【实用】Angular中如何实现类似Vuex的全局变量状态变化功能?
- 校内网--自动分享视频-flash xss蠕虫分析
- mysql istransient_由于 MySQL 版本问题导入报错
- linux mysql安装 读写分离_linux下安装mysql-proxy 配置读写分离
- iOS开发的学习笔记
- es6 --- Reflect的静态方法
- C语言 __FUNCTION__ - C语言零基础入门教程
- TensorFlow 教程 --进阶指南--3.9TensorBoard: 图表可视化
- 废话少说 分析java抽象类与接口的区别
- Bosh vs Comet vs Long Polling vs Polling
- matplotlib无法显示图片的解决方法(non-gui backend)
- FOC电机控制之SVPWM原理与实现
- 计算机端口25,在Windows 下关闭21\23\25端口的方法 -电脑资料
- CSS 边框 border属性
- 包含WebRoot的Web工程在Eclipse中的搭建和配置
- win7蓝牙怎么连接_小米智能手环怎么连接手机蓝牙
- 2014中秋节,用java为QQ游戏美女找茬写辅助
- IDEA与VsCode两种开发工具的比较
- Android面试题之动画+事件处理篇,安卓消息分发机制