[CSP-S模拟测试]:五子棋(模拟)
题目传送门(内部题122)
输入格式
输入文件第一行为一个正整数$n$,表示双方总共下了多少步棋。
接下来$n$行,输入文件每行两个正整数。第$i$行的两个数$x,y$表示第$i$步的棋子下在了第$x$条横线和第$y$条竖线的交叉点上。若$i$为奇数,则这个棋子是黑棋,否则是白棋。
输出格式
若没有人获得胜利,你需要输出$"Tie"$(不含引号)。否则,若小$A$获胜,则输出$"A"$(不含引号),若小$B$获胜,输出$"B"$。当有人获胜时,你还需要输出一个正整数$w$,表示第$w$步下完后游戏应当结束,字母与整数间用一个空格隔开。
样例
样例输入:
20
5 5
4 5
5 6
7 5
6 7
7 2
4 3
8 3
6 6
8 5
6 4
3 3
8 7
3 4
6 5
4 8
6 3
5 10
5 9
8 8
样例输出:
A 17
数据范围与提示
对于$100\%$的数据,满足$0\leqslant n\leqslant 225,1\leqslant x,y\leqslant 15$。
题解
模拟,没了……
注意函数不要忘了返回值,$exit(0)$需要调库,我知道的就这么多了,要是有人还犯了其它低级错误可以找我加上。
我感觉我的打法细节不是很多。
时间复杂度:$\Theta(n)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- int Map[20][20];
- int ans;
- bool judge(int x,int y)
- {
- int res1=1,res2=1,res3=1,res4=1;
- for(int i=1;;i++)if(Map[x+i][y]!=Map[x][y]){res1+=i-1;break;}
- for(int i=1;;i++)if(Map[x-i][y]!=Map[x][y]){res1+=i-1;break;}
- for(int i=1;;i++)if(Map[x][y+i]!=Map[x][y]){res2+=i-1;break;}
- for(int i=1;;i++)if(Map[x][y-i]!=Map[x][y]){res2+=i-1;break;}
- for(int i=1;;i++)if(Map[x+i][y+i]!=Map[x][y]){res3+=i-1;break;}
- for(int i=1;;i++)if(Map[x-i][y-i]!=Map[x][y]){res3+=i-1;break;}
- for(int i=1;;i++)if(Map[x+i][y-i]!=Map[x][y]){res4+=i-1;break;}
- for(int i=1;;i++)if(Map[x-i][y+i]!=Map[x][y]){res4+=i-1;break;}
- if(res1>=5||res2>=5||res3>=5||res4>=5)return 1;
- return 0;
- }
- int main()
- {
- scanf("%d",&n);
- for(int i=1;i<=n;i++)
- {
- int x,y;
- scanf("%d%d",&x,&y);
- Map[x][y]=(i&1)+1;
- if(!ans&&judge(x,y))ans=i;
- }
- if(!ans)puts("Tie");
- else if(ans&1)printf("A %d",ans);
- else printf("B %d",ans);
- return 0;
- }
rp++
[CSP-S模拟测试]:五子棋(模拟)的更多相关文章
- 模拟测试—moq:简单一两句
在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- 安装nginx python uwsgi环境 以及模拟测试
uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.re ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- 转 C#实现PID控制的模拟测试和曲线绘图
C#实现PID控制的模拟测试和曲线绘图 本文分两部分,一部分是讲PID算法的实现,另一部分是讲如何用动态的曲线绘制出PID运算的结果. 首先,PID算法的理论模型请参考自动控制理论,最早出现的是模 ...
- Mockito:一个强大的用于Java开发的模拟测试框架
https://blog.csdn.net/zhoudaxia/article/details/33056093 介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用 ...
- NOIP模拟测试1(2017081501)
好,今天是cgg第一次举行模拟测试,希望各位支持. 时间限制:2小时 题目链接: 题目一:水得都没名字了 题目二:车站 题目三:选数 不要觉得2小时太少,我的题目很良心,都很简单. 答案可以在模拟测试 ...
- Mock 模拟测试简介及 Mockito 使用入门
Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象.mock对象就是真实对象在调试期间的代 ...
随机推荐
- L2-014. 列车调度(Dilworth定理)
火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...
- 如何在LinuxKernel中操作file(set_fs與get_fs)
在Kernel 中,照理說能存取至 0 ~ 4GB.但是實作層面卻是只能讓我們使用到3GB ~ 4GB 這會導致我們無法使用open(),write()這些在user space下的function. ...
- Robot Framework(一)安装笔记
参考网址:https://www.cnblogs.com/yinrw/p/5837828.html因为自己安装了py,网上教程都是统一安装py2.7开始的. 所以这里总结下安装笔记:cmd命令界面进行 ...
- eclipse运行jsp出现404错误怎么办?
Window/Show View/Other/Server/Servers/双击“Tomcat v7.0 Server at localhost”在Server Locations配置中选择第二个选项 ...
- IntelliJ IDEA 复杂的重构技巧
IntelliJ IDEA 复杂的重构技巧(二) 转载 上次我说了一些 "复杂的重构技巧" ,讲的是一些使用 IntelliJ 的简单功能实现复杂的重构需求的技巧. 看到大家的反响 ...
- JS常见面试题总结-真实被问到的!
1.判断数据类型有几种方法 console.log(typeof 'abc') // string console.log(Object.prototype.toString.call('abc')) ...
- Eclipse中插件的运用
1. hotcode2.jar 支持java代码热部署,改了本地java代码不需要重新部署生效,可以节省开发时间,提高开发效率. 安装方法: 到help -- install new software ...
- Proxy.newInstance与InvocationHandler的使用示例
先定义一个接口,根据代理模式的原理,被代理类与代理类都要实现它. public interface Person { void eat(); } 再写一个实际执行任务的类(被代理类): public ...
- 从FBV到CBV四(访问频率限制)
比如我们有一个用户大转盘抽奖的功能,需要规定用户在一个小时内只能抽奖3次,那此时对接口的访问频率限制就显得尤为重要 其实在restframework中已经为我们提供了频率限制的组件 先捋一下请求到AP ...
- Linux 的帐号与群组:有效与初始群组、groups, newgrp
关于群组: 有效与初始群组.groups, newgrp 认识了帐号相关的两个档案 /etc/passwd 与 /etc/shadow 之后,您或许还是会觉得奇怪, 那么群组的设定档在哪里?还有,在 ...