思路:

分析:假设取的牌顺序是一个序列,那么这种序列在末尾为1时是和取牌序列一一对应的,且是符合“游戏结束时牌恰好被取完”的一种情况。

简证:1、在序列中,任一数 i 的后一个数 j 是必然要放在第 i 堆里的。而值为 i 的数有 a[i]个,所以在 i 后面的数也恰好a[i]个,所以a[i]个数被放到第 i 堆,符合题目约束条件。

2、在序列中,由于游戏是从第一堆开始的,所以第一个数虽然没有前驱,但是他是放在第 1 堆的。所以如果 1 不为最后一个数,那么第一堆中必然有a[1]+1个数了,不行。

3、序列中的最后一个数 记 i ,如果不为 1 ,那么值 i 就只有a[i]-1个后继了。

4、结合2、3,易知只有最后一个数为 1 ,堆容量a[i]才会都符合。才能根据此序列构造一种符合的分堆及取牌(题目原意是随机取的)情况,即一一对应。

所以至此,题目转变为N个数的全排列,其中最后一个数为1的概率是多少。先从a[1]个1里取一个1,有a[1]种,然后剩下的N-1个数全排列有(N-1)!种,所以总共符合有a[1]*(N-1)!种。而N个数全排列有N!种。所以概率为a[1]/N。而N = sum(a[i])。

代码如下:

 #include<stdio.h>
#include<cstring>
#include<algorithm>
#define I(x) scanf("%d",&x)
using namespace std;
int main(){
int n,a,sum,t,b,ca=;
I(t);
while(t--){
I(n);
sum=;
for(int i=;i<n;i++){
I(a);
sum+=a;
if(i==) b=a;
}
printf("Case %d: %.6lf\n",++ca,1.0*b/sum);
}
return ;
}

hdu 4061 A Card Game的更多相关文章

  1. HDU 4336:Card Collector(容斥原理)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=4336 Card Collector Special Judge Problem Descriptio ...

  2. 【HDU】4336 Card Collector

    http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:n张卡片,每一次取一个盒子,盒子里装有卡片i的概率是p[i],求得到所有卡片所需要开的盒子的期望数( ...

  3. hdu 2629 Identity Card (字符串解析模拟题)

    这题是一个字符串模拟水题,给12级学弟学妹们找找自信的,嘿嘿; 题目意思就是要你讲身份证的上的省份和生日解析出来输出就可以了: http://acm.hdu.edu.cn/showproblem.ph ...

  4. HDU - 4336:Card Collector(min-max容斥求期望)

    In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, fo ...

  5. hdu 4061 福州赛区网络赛A 数学 ***

    a1/sum #include<cstdio> #include<iostream> #include<algorithm> #include<cstring ...

  6. HDU 2629 Identity Card

    简单题 给出身份证号 判断住址 和出生年月 熟练字符串的操作 主要是string::substr(s, l)//s:起始位置 l长度 #include <iostream> #includ ...

  7. 【整理】简单的数学期望和概率DP

    数学期望 P=Σ每一种状态*对应的概率. 因为不可能枚举完所有的状态,有时也不可能枚举完,比如抛硬币,有可能一直是正面,etc.在没有接触数学期望时看到数学期望的题可能会觉得很阔怕(因为我高中就是这么 ...

  8. (简单匹配)Card Game Cheater -- hdu --1528

    http://acm.hdu.edu.cn/showproblem.php?pid=1528 Card Game Cheater Time Limit: 2000/1000 MS (Java/Othe ...

  9. HDU 4336 Card Collector 期望dp+状压

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4336 Card Collector Time Limit: 2000/1000 MS (Java/O ...

随机推荐

  1. OpenGL完整实例

    结合上一节的内容,分享完整代码. 先画一个cube,然后通过OnGestureListener去触发onFling使它旋转起来. OnGestureListener相关的方法我已经都加了注释,可以参考 ...

  2. greenDao生成的实体类无法存放JsonArray的解决方法

    今天在解析Json数据的时候,发现我们用greenDao生成的实体类只能是基本数据类型,而我请求回来的json数据里面还包含了jsonArray. 下面是json的数据格式 "content ...

  3. Go defer延迟执行

    defer用于延迟执行,可以类比于java或c++中的析构函数. 查看一段示例代码: func Contents(filename string) (string, error) { //打开文件 f ...

  4. 关于在android4.1.x的版本不能启动支付宝问题

    异常:Failure calling remote service 异常日志: INFO/<unknown>(<unknown>): java.security.spec.In ...

  5. QT 按钮(4种样式)

    // 1.正常  btnNormal_ = new QPushButton("Normal Button", this);  // 2.可停驻  btnCheck_ = new Q ...

  6. java 图片处理

    /* * 图片处理类 */ package image; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.j ...

  7. 团队项目——NABC

    N:根据自身遇到的问题,应对铁大环境——查询图书时只能登录网页进行查询,对于我们铁大莘莘学子着实是不方便的.所以此项目诞生. A:对于实现方法,首先我们随移动设备的潮流,做一个Android应用,对于 ...

  8. 典型用户 persona

    persona 典型用户 1.姓名:王涛 2.年龄:22 3.收入:基本无收入 4.代表用户在市场上的比例和重要性:王涛为铁道学生.本软件的用户主要是学生和老师,尤其是广大的铁大学子,所以此典型用户的 ...

  9. (补)PSP三张表

    学生     司新红 日期  2014.3.14 教师  王建民 项目计划总结 编程 完善程序 测试程序 阅读书籍 日总计 周日 10:00-10:30 pm 0.5 周一 10:00-10:30 p ...

  10. Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 离线+分块

    题目链接: http://codeforces.com/contest/103/problem/D D. Time to Raid Cowavans time limit per test:4 sec ...