题目链接:

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
*/

最新文章

  1. winform程序一启动抛出异常--调用目标发生异常
  2. [Nhibernate]体系结构
  3. 使用vs中的发布功能发布asp.net core项目时遇到ERROR_CERTIFICATE_VALIDATION_FAILED错误
  4. [游戏模版13] Win32 透明贴图 主角移动
  5. JAVA通过poi对Excel数据在(jsp+ssh)环境下导入导出
  6. JavaScript escape encodeURI encodeURIComponent() 函数
  7. Java语言实现简单FTP软件------&gt;FTP软件本地窗口的实现(五)
  8. 如何关闭Altium Designer联网功能(图文教程)
  9. 【转】HLSL基础
  10. QT5:C++实现基于multimedia的音乐播放器(二)
  11. GIt -- git push 远程分支老是需要重新输入公钥密码问题处理?
  12. C++中 引用&amp;与取地址&amp;的区别
  13. python数据分析实例(1)
  14. URAL 1099 Work Scheduling (一般图最大匹配) 模板题【带花树】
  15. Session详解、ASP.NET核心知识(8)
  16. PixelMatorPro快捷键大全(osx)
  17. 0-如何正确使用 Django的User Model
  18. DVWA安装
  19. UVALive-5135 Mining Your Own Business (无向图的双连通分量)
  20. xunsearch安装及环境检测(一)

热门文章

  1. 前端基础-jQuery的内容之选择器
  2. 【vue】------浅谈vue------【William】
  3. 帝国CMS给会员注册加入问答验证
  4. linux-2.6.22.6内核启动分析之Makefile文件
  5. anaconda创建python虚拟环境
  6. ruby中的循环——times
  7. NCBI SRA数据库使用详解
  8. 关于使用READ TABLE语句
  9. 20155218 《Java程序设计》实验二(Java面向对象程序设计)实验报告
  10. 20155239 2016-2017-2 《Java程序设计》第10周学习总(2017-04-22 16:26