HDU 5229 ZCC loves strings 博弈
题目链接:
hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5229
bc:http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=582&pid=1002
题解:
设字符串a,b;
结论:先手胜的充分必要条件是|a|+|b|为奇数或a==b。
证明:
数学归纳法:
|a|+|b|=0;时,先手败,结论成立
假设|a|+|b|<p时结论成立,现在分类讨论|a|+|b|的情况:
p为偶数:
如果a=b,则先手直接采取方案b取胜,否则,先手只能执行方案A必败。
p为奇数:
先手只要用方案a取走一个,且保证取走之后a!=b(取较短的那个,当较短为0时,去另一个),那么就能保证必胜。
综上所述,结论成立。
---------------------------------我是分割线----------------------------------
对于当前输入串,统计它之前与它相等的串的个数x和长度与它不同奇偶的串的个数y,累加它对答案的贡献x+y,线性扫一遍就好了。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std; const int maxn=1e5+; int odd[];
char str[maxn];
int n;
map<string,int> mymap; void init(){
mymap.clear();
memset(odd,,sizeof(odd));
} int gcd(int a,int b){ return b==?a:gcd(b,a%b); } int main(){
int tc;
scanf("%d",&tc);
while(tc--){
init();
int ans=;
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%s",str);
int o=strlen(str)&;
ans+=odd[!o];
odd[o]++; //str不需要是string类型!
ans+=mymap[str];
mymap[str]++;
}
int demo=n*(n-)/;
int g=gcd(ans,demo);
if(ans==) printf("0/1\n");
else printf("%d/%d\n",ans/g,demo/g);
}
return ;
} /*
2
ab
bc
*/
HDU 5229 ZCC loves strings 博弈的更多相关文章
- HDU 4876 ZCC loves cards(暴力剪枝)
HDU 4876 ZCC loves cards 题目链接 题意:给定一些卡片,每一个卡片上有数字,如今选k个卡片,绕成一个环,每次能够再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个 ...
- hdu 4873 ZCC Loves Intersection(大数+概率)
pid=4873" target="_blank" style="">题目链接:hdu 4873 ZCC Loves Intersection ...
- hdu 4876 ZCC loves cards(暴力)
题目链接:hdu 4876 ZCC loves cards 题目大意:给出n,k,l,表示有n张牌,每张牌有值.选取当中k张排列成圈,然后在该圈上进行游戏,每次选取m(1≤m≤k)张连续的牌,取牌上值 ...
- HDU 4873 ZCC Loves Intersection(可能性)
HDU 4873 ZCC Loves Intersection pid=4873" target="_blank" style="">题目链接 ...
- hdu 4882 ZCC Loves Codefires(数学题+贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4882 ------------------------------------------------ ...
- hdu 5996 dingyeye loves stone(博弈)
题目链接:hdu 5996 dingyeye loves stone 题意: 给你一棵树,树的每一个节点有a[i]个石子,每个人可以将这个节点的石子移向它的父亲,如果没有合法操作,那么就算输,现在给你 ...
- hdu 5288 ZCC loves straight flush
传送门 ZCC loves straight flush Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K ...
- HDU 5228 ZCC loves straight flush( BestCoder Round #41)
题目链接:pid=5228">ZCC loves straight flush pid=5228">题面: pid=5228"> ZCC loves s ...
- HDU 4882 ZCC Loves Codefires (贪心)
ZCC Loves Codefires 题目链接: http://acm.hust.edu.cn/vjudge/contest/121349#problem/B Description Though ...
随机推荐
- jsp小基础归纳
JSP的本质就是一个Servlet,JSP的运行之前会先被Tomcat服务器翻译为.java文件,然后在将.java文本编译为.class文件,而我们在访问jsp时,处理请求的就是那个翻译后的类. 1 ...
- 【gitlab平台的搭建】
gitlab同github相同,具有把源码集中存放的功能,同时依靠git进行code的同步,在实际的开发过程中可保证团队的项目同步,同时便于便于维护等 #下载这个rpm包 #gitlab.rb访问地址 ...
- s3c2440存储控制器详解
从上图可知,外部内存类的设备与存储管理器相连,那么CPU是怎样访问到内存的呢?通过存储管理器.CPU比较单纯,只会按照指令执行,CPU只负责发出地址,怎样找到内存类设备呢?这些都交给存储管理器来管理. ...
- 20155325实验四 Android程序设计
实验四 Android程序设计-1 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)&g ...
- vector的二维用法+前缀和
题目链接:https://codeforces.com/contest/1082/problem/C(C. Multi-Subject Competition) A multi-subject com ...
- Nginx入门篇(三)之虚拟主机配置
一.虚拟主机概念 所谓虚拟主机,在Web服务当中就是一个独立的网站站点,这个站点对应独立的域名(也有可能是IP或者端口),具有独立的程序和资源目录,可以独立地对外提供服务供用户访问. 这个独立的站点在 ...
- BZOJ3174. [TJOI2013]拯救小矮人(dp)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3174 题解 其实此题并不需要那么多YY的部分. 我们考虑若干个小矮人逃出的顺序.若跳出的 ...
- HTML基本代码教学片,认识HTML
今儿头午有点晕晕的感觉,咳咳,甩甩头开课 HTML 定义:超文本标记语言 (记不住的可以这么记:how to make love ! 哈哈,准备开车,粗人一个,长的不行) 其实理解起来很简单,超越文本 ...
- Spring学习(七)-----Spring Bean的5种作用域
在Spring中,bean作用域用于确定哪种类型的 bean 实例应该从Spring容器中返回给调用者.bean支持的5种范围域: 单例(singleton) - 每个Spring IoC 容器返回一 ...
- mysql学习----支持Emoji表情
但发现了一个问题,iPhone上有Emoji表情,插入Mysql时失败了,报如下异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F ...