hdu5229
bc41第二题:
题意:两个人有 n 个串,随机选出两个串,可以进行这样的操作:①选一个串消去最后一个字符,②若两串相同则可以全部消去两串
若到某个人时正好消去两个串,则这个人胜另一人负,问先手胜概率;
首先就是判断什么情况先手胜:
①当两个串一开始就相同的情况:先手可以直接消去两个串,则先手胜;
②当两个串长度和为奇数的情况:先手始终消长度短的串,那么两串长度始终不相等,则后手也被迫执行操作①,按顺序都执行操作①那么最后一个字符会被先手消去,先手胜;
而后手胜的情况:
两串长度和为偶数且两串不相同,此时先手无论先消去哪个串的最后一个字符,后手只需要始终删去短串的最后一个字符,可以使两个串长度始终不等,则两人都执行操作①,后手胜;
那么问题就是任取两串,长度和为奇数或两串相同的概率。
计算方式就是读入时计录长度分别奇数及偶数的串的个数以及每种串出现多少次。两串长度和奇数的种类数就是奇数串个数×偶数串个数;两串相同的种类数就是对每种串,个数为k,种类数k*(k-1)/2;这些总和除以总数 n*(n-1)/2 就得到结果,约分形式就是同除以 gcd即可;
但是由于我蠢!我特判了概率 0 时输出 “0 / 总和”,实际该输出 “0/1”
就这样又wa一发```
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<string>
using namespace std;
typedef long long ll; ll gcd(ll a,ll b){
for(;a>&&b>;a>b?a%=b:b%=a);
return a+b;
} int main(){
int T;
while(scanf("%d",&T)!=EOF){
while(T--){
int n;
scanf("%d",&n);
map<string,int>m;
ll ji=,ou=;
m.clear();
int i;
for(i=;i<=n;i++){
string a;
cin>>a;
m[a]++;
if(a.length()%){
ji++;
}
else ou++;
}
ll cnt=;
cnt=ji*ou;
for(map<string,int>::iterator it=m.begin();it!=m.end();it++){
if(it->second>){ cnt+=((it->second)*((it->second)-)/);
}
}
ll sum=n*(n-)/;
if(cnt==)printf("0/1\n");
else{
ll g=gcd(cnt,sum);
printf("%lld/%lld\n",cnt/g,sum/g);
}
}
}
return ;
}
hdu5229的更多相关文章
- Beatcoder#39+#41+#42
HDU5211 思路: 倒着更新每个数的约数,更新完要把自己加上,以及1的情况? //#include <bits/stdc++.h> #include<iostream> # ...
随机推荐
- php7-soap调用wsdl接口报错:Could not connect to host
由php5.6升级到php7.1以上版本,在用soap调用wsdl接口是报错:Could not connect to host 后来经过排查是centos服务器上装有2个版本的openssl造成的. ...
- 多个 CancellationTokenSource 复合(组合) 或 C# 使用 CancellationTokenSource 终止线程
https://www.cnblogs.com/luohengstudy/p/5623451.html https://www.cnblogs.com/wlzhang/p/4604471.html
- codeforces 555a//Case of Matryoshkas// Codeforces Round #310(Div. 1)
题意:1-n的数字,大的在小的后面,以这种规则已经形成的几个串,现在要转为一个串,可用的操作是在末尾拆或添加,问要操作几次? 模拟了很久还是失败,看题解才知道是数学.看来这种只要结果的题,模拟很不合算 ...
- Sasha and a Very Easy Test CodeForces - 1109E (数学,线段树)
大意: 给定n元素序列, q个操作: (1)区间乘 (2)单点除(保证整除) (3)区间求和对m取模 要求回答所有操作(3)的结果 主要是除法难办, 假设单点除$x$, $x$中与$m$互素的素因子可 ...
- FREETEXTBOX
本文转自http://blog.csdn.net/JOHNCOOLS/archive/2006/04/08/655553.aspx感谢作者们的付出---------------版本: FreeText ...
- CSS样式属性——背景
背景——包括背景颜色.背景图片,以及背景图片的控制 background-color:设置背景色(transparent表示透明的背景色) background-image:设置元素的背景图片 ba ...
- spring-mvc----数据库数据到页面错误--tomcat启动不了
spring-mvc----数据库数据到页面错误 错误为: 解决: 开启管理员cmd.到tomcat的目录下,-->shutdown.bat 不用重启,不用关机.
- notepad++插件安装
notepad安装目录的 plugins 下重启 notepad.exe程序即可 插件下载地址 : https://sourceforge.net/projects/npp-plugins/fil ...
- 修改cmd窗口mysql的提示符:
mysql提示符: \D 完整的日期 \d 当前数据库 \h 服务器地址 \u 当前用户 登录数据库的时候设置提示符: mysql -uroot -proot --promp ...
- httpclient httpclient连接回收
httpclient连接释放 httpClient必须releaseConnection,但不是abort.因为releaseconnection是归还连接到到连接池,而abort是直接抛弃这个连接, ...