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的更多相关文章

  1. Beatcoder#39+#41+#42

    HDU5211 思路: 倒着更新每个数的约数,更新完要把自己加上,以及1的情况? //#include <bits/stdc++.h> #include<iostream> # ...

随机推荐

  1. Maven常用dependency记录

    1.servlet配置 <dependency> <groupId>junit</groupId> <artifactId>junit</arti ...

  2. 图片保存到数据库以及C#读取图片

    图片保存到数据库,如果是sqlserver就是Image类型,如果保存到Oracle就是blob类型,在c#中相对应的就是byte[]类型,同时只需要对读出的数据强制转换就行(byte[])objec ...

  3. [Java学习] java泛型通配符和类型参数的范围

    本节先讲解如何限制类型参数的范围,再讲解通配符(?). 类型参数的范围 在泛型中,如果不对类型参数加以限制,它就可以接受任意的数据类型,只要它是被定义过的.但是,很多时候我们只需要一部分数据类型就够了 ...

  4. Turbolinks

    Turbolinks Turbolinks® makes navigating your web application faster. 功能: 自动优化导航. 无需server端配合.全HTML网页 ...

  5. Java中HashMap的实现原理

    最近面试中被问及Java中HashMap的原理,瞬间无言以对,因此痛定思痛觉得研究一番. 一.Java中的hashCode和equals 1.关于hashCode hashCode的存在主要是用于查找 ...

  6. Nginx 关于 location 的匹配规则详解

    有些童鞋的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通, ...

  7. Mac安装fish shell

    1.brew update 2.brew install fish 3.sudo vi /etc/shells 增加内容:/usr/local/bin/fish   ##增加fish到shell环境变 ...

  8. 管道与popen函数与重定向

    转自:http://www.tldp.org/LDP/lpg/node12.html Pipes the Easy Way! LIBRARY FUNCTION: popen(); PROTOTYPE: ...

  9. python dict sorted 排序

    https://www.cnblogs.com/linyawen/archive/2012/03/15/2398292.html 我们知道Python的内置dictionary数据类型是无序的,通过k ...

  10. httpclient 多线程请求

    线程请求执行 当配备一个线程池管理器后,如PollingClientConnectionManager,HttpClient就能使用执行着的多线程去执行并行的多请求. PollingClientCon ...