题意:

给一个小写字母组成的字符串,每回合轮到某人时,此人可以选择让某位+1(如果是z则变回a),或者直接结束游戏。

先手希望游戏结束时字符串字典序尽量小,后手希望游戏结束时字符串字典序尽量大,求游戏结束时的字符串。

题解:

定理0:先手只能操作z

证明:如果先手操作非z元素,后手直接结束游戏,对于先手而言,局面一定比先手直接结束游戏更劣。

定理1:后手不应操作字符串的前导y

证明:

(1)假设轮到后手时字符串呈如下状态:yyyyy*****

(2)如果后手操作了某个y,此时字符串变成了这样:yyzyy*****

(3)先手可以操作z:yyayy*****

(4)如果后手再操作此a后面的字符,则先手直接结束游戏,否则先手将刚刚被操作,变成z的字符再操作一次变成a,此时则回到了情况(3)或者后手也可以直接结束游戏,无论何种情况,局面对于后手而言都劣于(1)

定理2:如果字符串中的第一个z前面有字符且不全是y,则先手应该直接结束游戏

证明:

(1)不妨假设轮到先手时,字符串呈如下状态:yabz****

(2)如果先手操作了某个z,变成yaba****

(3)则由定理1,后手可以操作第一个非y字符,且这个字符一定在z前面,变为ybba****

(4)如果此时a直接结束游戏,对于先手局面一定比(1)更劣。如果先手选择操作,那么无论先手操作什么,后手都直接结束游戏,对于先手而言局面一定比(1)更劣。

定理3:如果字符串最前若干个是y,紧接着是z,如yyz***,则先手能获得的最好局面是yyb***

(1)如果先手操作后面的z,后手直接结束游戏,对于先手局面一定比yyb***更劣

(2)先手操作第一个z,变为yya***后,如果后手选择结束游戏,或者后手操作其他非y元素,先手结束游戏,则局面定比yyb***对后手更劣

(3)所以后手只能操作a,将之变为yyb***

(4)此时若没有z,则根据定理0先手应直接结束游戏,若后面有z,则根据定理2先手应直接结束游戏。

定理0,2,3列出了先手开局时所有可能遇到的三种情况,模拟即可。

#include<iostream>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
char s[];
scanf("%s",s);
for(int i=;s[i]!='\0';i++){
if(s[i]<'y'){
printf("%s",s+i);
break;
}
if(s[i]=='y')printf("y");
if(s[i]=='z'){
printf("b%s",s+i+);
break;
}
}
printf("\n");
}
return ;
}

hdu多校第九场 1005 (hdu6684) Rikka with Game 博弈的更多相关文章

  1. hdu多校第九场 1006 (hdu6685) Rikka with Coin 暴力

    题意: 有一些1毛,2毛,5毛,1块的钢镚,还有一些价格不同的商品,现在要求你带一些钢镚,以保证这些商品中任选一件都能正好用这些钢镚付账,问最少带多少钢镚. 题解: 对于最优解,1毛的钢镚最多带1个, ...

  2. hdu多校第九场 1002 (hdu6681) Rikka with Cake 树状数组维护区间和/离散化

    题意: 在一块长方形蛋糕上切若干刀,每一刀都是从长方形某条边开始,垂直于这条边,但不切到对边,求把长方形切成了多少块. 题解: 块数=交点数+1 因为对于每个交点,唯一且不重复地对应着一块蛋糕. 就是 ...

  3. hdu多校第一场1005(hdu6582)Path 最短路/网络流

    题意: 在无向图上删边,让此图上从起点到终点的最短路长度变大,删边的代价是边长,求最小代价. 题解: 先跑一遍迪杰斯特拉,求出所有点的d[]值,然后在原图上保留所有的边(i,j)仅当i,j满足d[j] ...

  4. hdu多校第二场 1005 (hdu6595) Everything Is Generated In Equal Probability

    题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...

  5. 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)

    咕咕咕了太久  多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...

  6. Rikka with Game[技巧]----2019 杭电多校第九场:1005

      Rikka with Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Othe ...

  7. 杭电多校第九场 hdu6425 Rikka with Badminton 组合数学 思维

    Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/O ...

  8. 杭电多校第九场 hdu6424 Rikka with Time Complexity 数学

    Rikka with Time Complexity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K ( ...

  9. 杭电多校第九场 HDU6415 Rikka with Nash Equilibrium dp

    Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K ...

随机推荐

  1. springboot集成使用rabbitmq笔记(3.基本过程)

    使用rabbitmq笔记一 使用rabbitmq笔记二 使用rabbitmq笔记三 1.AMQP协议 AMQP 0-9-1的工作过程如下图:消息(message)被发布者(publisher)发送给交 ...

  2. 6383. 【NOIP2019模拟2019.10.07】果实摘取

    题目 题目大意 给你一个由整点组成的矩形,坐标绝对值范围小于等于\(n\),你在\((0,0)\),一开始面向\((1,0)\),每次转到后面第\(k\)个你能看到的点,然后将这条线上的点全部标记删除 ...

  3. Unity Document

    { https://docs.unity3d.com/ScriptReference/Events.UnityEventTools.html }

  4. springboot设置静态资源缓存一年

    由于本人所在项目组,所用的项目是前后端分离的,前端是React 的SPA,每次打包都会新版本的静态文件. 然而,在有些时候,这些静态资源是不变的,故可以将资源缓存至用户本地,提升性能. 写法如下,需要 ...

  5. 关于Web前端密码加密是否有意义的总结

    关于Web前端密码加密是否有意义的总结    :    https://blog.csdn.net/hla199106/article/details/45114801 个人:加密涉及到的是前后端的数 ...

  6. (转)oracle group by 和order by的关系(在一起使用注意事项)

    转:http://lzfhope.blog.163.com/blog/static/636399220092554045196/ 环境:oracle 10g单单group by 或者order by本 ...

  7. ArcMAP中Excel数据转换为shp数据

    参考百度知道:http://jingyan.baidu.com/article/f7ff0bfc1cf22c2e26bb138d.html 将数据库中带有X.Y坐标的二维表转换为空间点数据:从数据中将 ...

  8. 关于“Unknown or unsupported command 'install'”问题解决的小结

    经常需要在COMMAND命令中安装第三方库,有时会碰到“Unknown or unsupported command 'install'”这种报错. 刚开始时,以为是环境变量里面没有配置:PYTHON ...

  9. could not stop cortex-m device

    检查一下STM32复位管脚是不是0V,如果是0V的话并且你有上拉电阻,那么就断电后检查一下STM32的VCC和GND是否短路,我的就是两个贴片电容击穿造成的短路从而使RST无法拉高.

  10. MyBatis-Spring(二)--SqlSessionTemplate实现增删改查

    SqlSessionTemplate是个线称安全的类,每运行一个SqlSessionTemplate时,它就会重新获取一个新的SqlSession,所以每个方法都有一个独立的SqlSession,这意 ...