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. JSP生成验证码

    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%&g ...

  2. Confluence 6 配置 LDAP 连接池

    当 LDAP 连接池被启用后,LDAP 目录服务器将会维护一个连接池同时当必要的时候指派他们.当一个连接关闭后,这个连接将会放回到连接池中供以后进行使用.这种设置将会有效的提高系统性能. 希望配置 L ...

  3. P2048 [NOI2010]超级钢琴 (RMQ,堆)

    大意: 给定n元素序列a, 定义一个区间的权值为区间内所有元素和, 求前k大的长度在[L,R]范围内的区间的权值和. 固定右端点, 转为查询左端点最小的前缀和, 可以用RMQ O(1)查询. 要求的是 ...

  4. python-day49--前端 css-层叠样式表

    1.css功能: 对html标签的渲染和布局 2.CSS 要掌握的两方面: 1.查找标签 选择器 2.操作标签  (对属性进行操作) 3.CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一 ...

  5. thinkphp %s %d %f

    %s -- 表示字段串%d -- 表示整形数字%f -- 表示浮点数 例子:$order_number = $m_ebay_order_numbers->where("ebay_ord ...

  6. OAF开发中一些LOV相关技巧 (转)

    原文地址:OAF开发中一些LOV相关技巧 在OAF开发中,LOV的使用频率是很高的,它由两部分构成一是页面上的LOV输入框(如OAMESSageLovInputBean),二是弹出的LOV模式窗口(O ...

  7. HTML <a> 标签的伪类

    伪类的语法: selector : pseudo-class {property: value} CSS 类也可与伪类搭配使用. selector.class : pseudo-class {prop ...

  8. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式

    第一种:使用wsimport是JDK自带的工具,来生成 生成java客户端代码常使用的命令参数说明: 参数 说明 -p 定义客户端生成类的包名称 -s 指定客户端执行类的源文件存放目录 -d 指定客户 ...

  9. MySQL Server类型之MySQL客户端工具的下载、安装和使用(博主推荐)

    本博文的主要内容有 .MySQL Server 5.5系列的下载 .MySQL Server 5.5系列的安装 .MySQL Server 5.5系列的使用 .MySQL Server 5.5系列的卸 ...

  10. POJ 1008 简单模拟题

    e.... 虽然这是一道灰常简单的模拟题.但是米做的时候没有读懂第二个日历的计时方法.然后捏.敲完之后华丽的WA了进一个点.坑点就在一年的最后一天你是该输出本年的.e ...但是我好想并没有..看di ...