hdu多校第九场 1005 (hdu6684) Rikka with Game 博弈
题意:
给一个小写字母组成的字符串,每回合轮到某人时,此人可以选择让某位+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 博弈的更多相关文章
- hdu多校第九场 1006 (hdu6685) Rikka with Coin 暴力
题意: 有一些1毛,2毛,5毛,1块的钢镚,还有一些价格不同的商品,现在要求你带一些钢镚,以保证这些商品中任选一件都能正好用这些钢镚付账,问最少带多少钢镚. 题解: 对于最优解,1毛的钢镚最多带1个, ...
- hdu多校第九场 1002 (hdu6681) Rikka with Cake 树状数组维护区间和/离散化
题意: 在一块长方形蛋糕上切若干刀,每一刀都是从长方形某条边开始,垂直于这条边,但不切到对边,求把长方形切成了多少块. 题解: 块数=交点数+1 因为对于每个交点,唯一且不重复地对应着一块蛋糕. 就是 ...
- hdu多校第一场1005(hdu6582)Path 最短路/网络流
题意: 在无向图上删边,让此图上从起点到终点的最短路长度变大,删边的代价是边长,求最小代价. 题解: 先跑一遍迪杰斯特拉,求出所有点的d[]值,然后在原图上保留所有的边(i,j)仅当i,j满足d[j] ...
- hdu多校第二场 1005 (hdu6595) Everything Is Generated In Equal Probability
题意: 给定一个N,随机从[1,N]里产生一个n,然后随机产生一个n个数的全排列,求出n的逆序数对的数量,加到cnt里,然后随机地取出这个全排列中的一个非连续子序列(注意这个子序列可以是原序列),再求 ...
- 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)
咕咕咕了太久 多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...
- Rikka with Game[技巧]----2019 杭电多校第九场:1005
Rikka with Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Othe ...
- 杭电多校第九场 hdu6425 Rikka with Badminton 组合数学 思维
Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/O ...
- 杭电多校第九场 hdu6424 Rikka with Time Complexity 数学
Rikka with Time Complexity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K ( ...
- 杭电多校第九场 HDU6415 Rikka with Nash Equilibrium dp
Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K ...
随机推荐
- Java里的参数类型/返回值类型
参数类型/返回值类型: ##数据类型: ###基本类型: ###引用类型: ####数组 ####类 ####接口 参数类型/返回值类型是类和接口的情况: 1.参数类型是普通类的情况 为什么写成静态, ...
- 特种设备TSG 认证流程
特种设备许可,也叫安全注册(原为AZ安全注册认可),现为TS.国家为了防止和减少事故,保障人民群众生命和财产安全,促进经济发展而强制实施的安全监察.它的作用相当于欧盟的“CE”认证,但比“CE”认证更 ...
- web服务器环境搭建(及请求代理)
集成开发环境:(前端开发还是使用下面单独的web服务器比较好,前后端分离会用到代理的功能) 1.安装xampp时,软件会自动安装 微软的 Microsoft Visual C++ 2008 Redi ...
- iphone5越狱后问题的解决办法
1,添加各种源失败,显示红字. 解决办法: 如果出现bad 404等红字,一般是由于网络问题,服务器挤爆了,导致不能添加,这种情况大家可以换一个时间段添加源,或者使用网速快一点的网络,比如3g,多试几 ...
- 排序算法(一) 插入排序及Java实现
代码实现: public void insertionSort(List<T> list, Comparator<T> comparator) { for (int i=1; ...
- vs2012+wdk8.0 搭建wdf驱动开发环境
开发环境搭建: 系统:win7 x64 工具:vs2012 + WDK8.0 插件:wdfcoinstaller.msi (1)先安装vs2012,再安装wdk8.0,这样在打开vs2012时可以创建 ...
- lamp+nginx代理+discuz+wordpress+phpmyadmin搭建
我们以模拟实际需求的形式来复习.需求如下:1. 准备两台centos 6,其中一台机器跑mysql,另外一台机器跑apache和nginx + php2. 同时安装apache和nginx,其中ngi ...
- ubuntu 无pthread
由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装 $sudo apt-get install glibc-doc 安装以后,发现还是有很多函 ...
- DevOps到底是什么鬼?DevOps介绍及工具推荐。
什么是DevOps DevOps是Development和Operations的组合,是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与 ...
- VSCode运行JavaScript代码
方式一(推荐): 安装插件 open in window, 然后option+b