Codeforces 1190C. Tokitsukaze and Duel
2024-09-03 02:59:18
注意到后手可以模仿先手的操作,那么如果一回合之内没法决定胜负则一定 $\text{once again!}$
考虑如何判断一回合内能否决定胜负
首先如果最左边和最右的 $0$ 或 $1$ 距离小于等于 $k$,那么先手显然赢
如果最左边和最右的 $0$ 和 $1$ 中间都差了大于等于 $k$ 个位置,那么考虑后手能不能赢
枚举一下先手第一步即可(代码因为比赛是写的,比较奇怪,我感觉也不用参考代码吧..)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=2e5+;
int n,m;
char s[N];
int main()
{
n=read(),m=read();
scanf("%s",s+);
int l0=n+,r0=,l1=n+,r1=;
for(int i=;i<=n;i++)
{
if(s[i]=='') l0=min(l0,i),r0=max(r0,i);
else l1=min(l1,i),r1=max(r1,i);
}
if(r0-l0+<=m||r1-l1+<=m) { printf("tokitsukaze\n"); return ; }
int pre=;
for(int i=;i<=n;i++)
{
if(s[i]!=s[i-]) pre=i;
if(i-pre+>=m) { printf("once again\n"); return ; }
}
for(int i=;i+m-<=n;i++)
{
int l=i,r=i+m-;
if(l>l0&&r<r0) { printf("once again\n"); return ; }
if(l>l1&&r<r1) { printf("once again\n"); return ; }
}
printf("quailty\n");
return ;
}
最新文章
- SDL简介(网络汇总)
- 分析器错误消息: 未能加载类型“Automation.Web.MvcApplication”。
- windows 下ssh 客户端
- pyinstaller打包pyqt文件
- JAVA常见错误处理方法 和 JVM内存结构
- 用Spring Data JPA 基于内存存储pojo的简单案例
- asp.mvc获取checkbox、radio、select的值
- USB接口的SmartCard Class协议标准:ICCD and CCID
- VC6.0 导入资源崩溃
- 如何学习ACM
- 分离数据库时出错:无法对数据库&#39;XXX&#39; 执行删除,因为它正用于复制";的解决方法
- Docker容器时间与宿主机时间不一致
- 使用http load测试qps
- cocos2d-js 小知识
- 记一次wepy里面的渲染问题(this.$apply()的使用)
- HashMap和Hashtable的区别 2
- 127单词接龙 1&#183; Word Ladder1
- 使用递归打印二叉树的左视图 java
- Django CRM客户关系管理系统
- ASP.NET MVC 使用 Datatables (1)
热门文章
- fastjson =<; 1.2.47 反序列化漏洞浅析
- VMWare workstation12配置CentOS6.5虚拟机NAT网络以及虚拟机静态IP
- anaconda环境管理
- 从Ubuntu 14.04 LTS版升级到Ubuntu 16.04 LTS
- html添加注释怎么弄?
- 【React自制全家桶】四、React中state与props的分析与比较
- tensorflow神经网络与单层手写字识别
- Maven-SSM框架整合
- 我非要捅穿这 Neutron(四)Open vSwitch in Neutron
- Spring学习之==>;IoC