题意呢 就是有两种售票方式 一种是icpc 一种是其他方式 icpc抢票成功的概率是其他方式的2倍……

这时 一个人出现了 他通过内幕知道了两种抢票方式各有多少人 他想知道自己如果用icpc抢票成功的概率是多少 用acm抢票成功的概率是多少……

做过不多的概率dp 还在摸索……

dp[i][j]代表第i轮有j个icpc的人已经有票了……

当然同时i-j个通过其他方式抢票的人也有票了 这就是用同样的函数搜两次的原理……

优化一次i<=a 一次是把初始化放到for里……

第一次见这么卡时间的题……

把dp数组的优化放到for里就过了……

 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<map>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
double dp[][]; //i轮j个有票
bool ok=false;
double solve(int a,int b,int c){
double n=(double)a;
double icpc=(double)b;
double acm=(double)c;
if(n>icpc+acm) n=icpc+acm;
if(a>b+c) a=b+c;
dp[][]=;
for(int i=;i<=n;i++){
dp[i][]=; //优化初始化就过了
dp[i][]+=dp[i-][]*(acm-i+1.0)/(acm-i+1.0+icpc*2.0);
}
for(int i=;i<=n;i++){
dp[i][i]=;
dp[i][i]+=dp[i-][i-]*((icpc-i+1.0)*2.0)/(acm+(icpc-i+1.0)*2.0);
}
for(int i=;i<=n;i++){
for(int j=;j<i&&j<=a;j++){
dp[i][j]=;
//这里还可以优化
dp[i][j]+=dp[i-][j]*(acm-(i-j-1.0))/(acm-(i-j-1.0)+(icpc-j)*2.0);
dp[i][j]+=dp[i-][j-]*((icpc-j+1.0)*2.0)/(acm-(i-j)+(icpc-j+1.0)*2.0);
}
}
double ans=;
for(int i=;i<=n&&i<=a;i++)
if(ok)ans+=(dp[a][i])*i/icpc;
else ans+=(dp[a][i])*(n-i)/acm;
return ans;
} int main(){
int n,icpc,acm;
while(~scanf("%d",&n)){
if(n==) break; //这里不加应该也可以
scanf("%d%d",&icpc,&acm);
if(icpc==&&acm==){
printf("1.0000000000000000\n");
printf("1.0000000000000000\n");
continue;
}
ok=true;
printf("%.16lf\n",solve(n,icpc+,acm));
ok=false;
printf("%.16lf\n",solve(n,icpc,acm+));
}
return ;
}

最新文章

  1. 求两点之间最短路径-Dijkstra算法
  2. Apache Shiro和Spring Security的详细对比
  3. Java泛型总结(转)
  4. 【概念笔记】JAVA基础 - part1
  5. CentOS修改服务器系统时间
  6. [转]Windows的窗口刷新机制
  7. 【转发】Linux下如何查看当前支持的文件系统及各分区的文件系统类型
  8. 高逼格的画图:VIM原来可以这样玩
  9. C++ 二叉树遍历实现
  10. Android 消息传递之Bundle的使用——实现object对象传输(一)
  11. eclipse清除运行Maven build...后积累的配置项
  12. (转)Linux服务器安装配置tomcat
  13. css的position
  14. Python socket网络编程(通信介绍)
  15. b总结
  16. Odoo小数精度及货币精度详解
  17. python sorted三个例子
  18. Doxygen简单经验谈。。。
  19. 玩转OpenStack
  20. java版云笔记(四)

热门文章

  1. sql时间转换函数--备忘
  2. FTP上传下载工具(FlashFXP) v5.5.0 中文版
  3. 闹心的python编码
  4. CodeForces 677D Vanya and Treasure
  5. oracle中关于Oracle Database 11g Express Edition 打不开的问题
  6. React native android 最常见的10个问题
  7. git config
  8. vim的配置文件参数
  9. JSON中JObject和JArray,JValue序列化(Linq)
  10. 分子量(Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)