首先分析A能获胜的情况 A能获胜 当且仅当A拿完后所有剩下的都<b

所以一旦存在一个大小为X的 且 b<=X<a 则必是后手赢

当X为 a<=x<2*b 的时候 无论A或B拿 两个人都只能拿一次 拿完就<b作废

而X>=2*b时 如果是B先手 则B可以构造出一个大小刚好为b的来赢得胜利 所以如果有两个及以上的X>=2*b 后手必胜

当有且仅有一个X>=2*b时 A肯定要先操作这块来获得胜利 A能获胜 当且仅当 A拿完后的块只能在[1,b)和[a,2*b)这个范围内

因为一旦出现[b,a)或者[2*b,无穷)这两个范围内的块 A必输 所以我们只要暴力枚举 看是否存在A取完后 [a,2*b) 范围内的块为偶数的情况即可

#include<bits/stdc++.h>
#define RG register
using namespace std;
typedef long long ll;
const int MAXN = ;
char f[];
int num[];
int number[];
int cnt = ;
int aa, bb, cc;
int main() {
int T;
int a, b, aim;
scanf("%d", &T);
while (T--) {
aim = cnt = ;
scanf("%d %d", &a, &b);
scanf("%s", f + );
int len = strlen(f + );
for (int i = ; i <= len + ; i++) {
num[i] = ;
}
for (int i = ; i <= len; i++) {
num[i] = f[i] == '.' ? (num[i - ] + ) : ;
}
for (int i = ; i <= len + ; i++)
if (num[i] == && num[i - ] > -) {
number[++cnt] = num[i - ];
}
bool flag = ;
int now = ;
for (int i = ; i <= cnt; i++) {
if (number[i] >= b && number[i] < a) {
flag = ;
break;
}
if (number[i] >= * b) {
if (aim == ) {
aim = i;
} else {
flag = ;
break;
}
}
if (number[i] >= a && number[i] < * b) {
now++;
}
}
if (flag == ) {
printf("NO\n");
} else {
if (aim == ) {
if (now & ) {
printf("YES\n");
} else {
printf("NO\n");
}
} else {
//cout<<" aim: "<<aim<<endl;
bool flag2 = ;
int sum = number[aim];
for (int r1 = ; sum - a - r1 >= ; r1++) {
int r2 = sum - a - r1;
if (r1 >= * b || (r1 >= b && r1 < a)) {
continue;
}
if (r2 >= * b || (r2 >= b && r2 < a)) {
continue;
}
int add = ;
if (r1 >= a && r1 < * b) {
add++;
}
if (r2 >= a && r2 < * b) {
add++;
}
if ((now + add) % == ) {
flag2 = ;
break;
}
}
if (flag2) {
printf("YES\n");
} else {
printf("NO\n");
}
}
}
}
return ;
}

CodeForces - 1221E Game With String 分类讨论的更多相关文章

  1. Codeforces 685C - Optimal Point(分类讨论+乱搞)

    Codeforces 题面传送门 & 洛谷题面传送门 分类讨论神题. 首先看到最大值最小,一眼二分答案,于是问题转化为判定性问题,即是否 \(\exists x_0,y_0,z_0\) 满足 ...

  2. Codeforces 1513F - Swapping Problem(分类讨论+乱搞)

    Codeforces 题目传送门 & 洛谷题目传送门 简单题,难度 *2500 的 D2F,就当调节一下一模炸裂了的自闭的心情,稍微写写吧. 首先我看到这题的第一反应是分类讨论+数据结构,即枚 ...

  3. Codeforces 1461F - Mathematical Expression(分类讨论+找性质+dp)

    现场 1 小时 44 分钟过掉此题,祭之 大力分类讨论. 如果 \(|s|=1\),那么显然所有位置都只能填上这个字符,因为你只能这么填. scanf("%d",&n);m ...

  4. ACM学习历程—CodeForces 590A Median Smoothing(分类讨论 && 数学)

    题目链接:http://codeforces.com/problemset/problem/590/A 题目大意是给一个串,头和尾每次变换保持不变. 中间的a[i]变成a[i-1],a[i],a[i+ ...

  5. CodeForces - 1221E Game With String(不平等博弈)

    Alice and Bob play a game. Initially they have a string s1,s2,…,sns1,s2,…,sn, consisting of only cha ...

  6. Codeforces 870F - Path(数论+分类讨论+正难则反)

    Codeforces 题目传送门 & 洛谷题目传送门 首先考虑 \(d(u,v)\) 是个什么东西,分情况讨论: \(u\not\perp v\),\(d(u,v)=1\) \(u\perp ...

  7. CodeForces 382C Arithmetic Progression (排序+分类讨论)

    题意:给出一个长度为n的序列,表示有n张卡片,上面的数字,现在还有一张卡片,上面没有数字,问说可以写几种数字在这张卡片上面, 使得n+1张卡片上的数字可以排列成一个等差数列,有无限多种时输出-1. 析 ...

  8. CodeForces 792C - Divide by Three [ 分类讨论 ]

    删除最少的数位和前缀0,使得剩下的数能被3整除 等价于各数位数字之和能被3整除. 当前数位和可能是 0, 1, 2(mod 3) 0: 直接处理 1: 删除一个a[i]%3 == 1 或者 两个a[i ...

  9. Codeforces 1221E. Game With String

    传送门 首先每一段连续的 $...$ 都是互不影响的,所以可以一段段考虑 考虑最简单的情况,此时每一段都大于等于 $a$ 并且小于 $2b$ ,那么每一段都只能放一次,胜负直接根据段数即可得到答案 考 ...

随机推荐

  1. 2019-10-20 李宗盛 spss作业

    SPSS: 1.有关SPSS数据字典的说法,正确的是 A.SPSS数据集的数据字典可以复制到其他数据集中 B.SPSS数据集的数据字典是不能复制的 C.SPSS的数据字典可以通过“复制”和“粘贴”在不 ...

  2. 【ARM-Linux开发】内核3.x版本之后设备树机制

    内核3.x版本之后设备树机制 Based  on  Linux  3.10.24  source  code  参考/documentation/devicetree/Booting-without- ...

  3. 【计算机视觉】特征脸EigenFace与PCA

    [计算机视觉]特征脸EigenFace与PCA 标签(空格分隔): [图像处理] 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/. 说 ...

  4. vue 页面 添加背景音乐

    背景音乐 添加背景音乐 并有单击事件   循环播放 <template> <div id="page"> <div style="width ...

  5. Reactor系列(六)Exception异常系列(六)Exception异常

    #java##reactor##flux##error##exception# 视频解说: https://www.bilibili.com/video/av79468713/ FluxMonoTes ...

  6. 数组工具类 Arrays

    public  static String toString(数组),将参数数组变成字符串,用来实现数组常见的操作 public static void sort(数组),按照批人升序对数组的元素进行 ...

  7. Docker daemon.json 的配置项目合集

    这几天看了一点docker相关的东西, 在学习中: 看了下园友的blog 感觉很好 这里 学习一下. https://www.cnblogs.com/pzk7788/p/10180197.html 其 ...

  8. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  9. 盒模型中padding、border、margin的区别

    在CSS中,规定了一种基本设计模型——盒模型(也叫框模型),如图所示: 其中包含了四部分内容:element/元素(即图中文字).padding/内边框(图中两个红色边框之间白色部分).border/ ...

  10. QT 打包exe

    QT打包主要方法: 1.把无措的代码进行Release编译 2.在运行完后,找到运行后生成的目录,以下是我的文件,名为result,运行类型有两种,一种是Debug,另一种是Release,我们需要的 ...