题面

第一眼以为是SG函数找规律题,然后发现并不是公平游戏。。。。

不过后来想了想,其实这样反而更好做。

这个游戏的一个显然的特性是,任何时候当场上存在长度 ∈[b,a)的块时,Bob必胜。(考虑贪心)

而这题的关键是发现,如果Bob操作时场上还有长度>=2b的块,那么Bob也必胜,因为Bob此时可以构造出一个长度为b的块。

剩下的剩下就是暴力分情况讨论了,看起来是思路已经明确了,但是细节暴多。。。。留给你们自己思考吧w

#include<bits/stdc++.h>
#define ll long long
using namespace std; inline int read(){
int x=0; char ch=getchar();
for(;!isdigit(ch);ch=getchar());
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
return x;
} bool fl; inline int Get(){
int x=0; char ch=getchar();
for(;ch=='.';ch=getchar()) x++;
if(ch=='\n') fl=1;
return x;
} int Q,a,b,now; inline bool solve(){
a=read(),b=read(); int BA=0,BB=0,DB=0,mx=0;
for(fl=0;!fl;) now=Get(),BA+=now>=a,BB+=now>=b,DB+=now>=b*2,mx=max(mx,now); if(BB>BA) return 0;
if(a>=2*b) return BA==1&&mx<=a+2*b-2;
if(mx>a+4*b-2||DB>1) return 0;
if(DB) return ((BA&1)&&(mx>=3*a||mx<=a+2*b-2))||(!(BA&1)&&mx>=2*a&&mx<=a+3*b-2);
return BA&1;
} int main(){
for(Q=read();Q;Q--) puts(solve()?"YES":"NO");
return 0;
} /*
[b,a)
只要轮到Bob操作的时候,场上存在>=2b的块,那么Bob必胜 ! 1.a>=2b 这样比较惨,只能Alice第一次有填的并且填完之后所有都<b 2.a∈[b+1,2b-1] 正常情况,当且仅当场上只有一块>=2b的且 len<=a+4b-2 */

  

Codeforces 1221 E Game With String的更多相关文章

  1. codeforces ~ 1009 B Minimum Ternary String(超级恶心的思维题

    http://codeforces.com/problemset/problem/1009/B B. Minimum Ternary String time limit per test 1 seco ...

  2. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  3. Codeforces Round #617 (Div. 3) String Coloring(E1.E2)

    (easy version): 题目链接:http://codeforces.com/contest/1296/problem/E1 题目一句话就是说,两种颜色不同的字符可以相互换位, 问,对这字符串 ...

  4. codeforces 709D D. Recover the String(构造)

    题目链接: D. Recover the String time limit per test 1 second memory limit per test 256 megabytes input s ...

  5. codeforces 710E E. Generate a String(dp)

    题目链接: E. Generate a String time limit per test 2 seconds memory limit per test 512 megabytes input s ...

  6. Codeforces 710 E. Generate a String (dp)

    题目链接:http://codeforces.com/problemset/problem/710/E 加或者减一个字符代价为x,字符数量翻倍代价为y,初始空字符,问你到n个字符的最小代价是多少. d ...

  7. codeforces 676C C. Vasya and String(二分)

    题目链接: C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. codeforces 598B Queries on a String

    题目链接:http://codeforces.com/problemset/problem/598/B 题目分类:字符串 题意:给定一个串,然后n次旋转,每次给l,r,k,表示区间l到r的字符进行k次 ...

  9. 【Codeforces 1132F】Clear the String

    Codeforces 1132 F 题意:给一个串\(S\),问每次删除连续的一段相同字母,最少删几次将原串删空. 思路:考虑区间\(dp\),我们看要删多少次能把\([l,r]\)删空,那么最终答案 ...

随机推荐

  1. vue中设置全局的css样式

    只需在main.js    ====import './style.less'   main.js =>>   import Vue from 'vue' import App from ...

  2. 数据库SQL语句大全——最常用的SQL语句

    检索数据: 检索单个列: SELECT pname FROM product 检索多个列: SELECT pname,market_price,is_hot FROM product 检索所有列: S ...

  3. Angular系列-AngularJs1使用Ace编辑器

    Ace编辑器 Ace编辑器是一个嵌入web的代码编辑器,支持语法高亮,自动补全等功能,如果想在页面展示或编辑代码,使用该工具是很合适的. 参考项目地址:https://github.com/ajaxo ...

  4. Tomcat与WAS应用中间件差异化分析研究

    --转载 http://blog.chinaunix.net/uid-25723371-id-5759072.html 目前我们在使用的基于JAVA的提供逻辑展现应用中间件有两种,一种是以商用软件WA ...

  5. 分布式服务追踪与调用链 Zikpin

    分布式服务追踪与调用链系统产生的背景 在为服务中,如果服务与服务之间的依赖关系非常复杂,如果某个服务出现了一些问题,很难追查到原因,特别是服务与服务之间调用的时候. 在微服务系统中,随着业务的发展,系 ...

  6. [javascript]原生js实现Ajax

    一.首先看JQuery提供的Ajax方法: $.ajax({ url: , type: '', dataType: '', data: { }, success: function(){ }, err ...

  7. (二)Lucene之根据关键字搜索文件

    前提:在使用lucene进行搜索的时候,必须先生成索引文件,即必须先进行上一章节的案例,生成索引文件如下: 该索引文件为"segments"开头,如果没有该文件则说明没有索引文件则 ...

  8. 3D数学基础_图形与游戏开发

    https://blog.csdn.net/popy007/article/list/2?t=1&  //向量计算相关文章 https://www.baidu.com/link?url=48C ...

  9. 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

    国人在表述"大材小用"这个场景时,总喜欢用一些实物来类比,比如:高射炮打蚊子. 英国QF 3.7英寸(94mm)高射炮,战斗全重超过9.3吨,全长近5米,最大射程约18公里,最大射 ...

  10. 自适应高度文本框 react contenteditable

    import React, { Component } from 'react'; import PropTypes from 'prop-types'; const reduceTargetKeys ...