题意与分析(CodeForces 540D)

是一道概率dp题。
不过我没把它当dp做。。。
我就是凭着概率的直觉写的,还好这题不算难。
这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布的变形:\[P=\frac{C^1_aC^1_b}{C^2_{a+b+c}-\frac{a(a-1)}{2}-\frac{b(b-1)}{2}-\frac{c(c-1)}{2}}=\frac{ab}{ab+bc+ac}\]即可。
最后还有求和的操作需要注意一下(因为我们没考虑\(i,j,k\)为0的时候),显然当只有两方时,一方必胜,直接合并概率即可(加法原理)。

代码

#include <iomanip>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#define MP make_pair
#define PB push_back
#define fi first
#define se second
#define ZERO(x) memset((x), 0, sizeof(x))
#define ALL(x) (x).begin(),(x).end()
#define rep(i, a, b) for (int i = (a); i <= (b); ++i)
#define per(i, a, b) for (int i = (a); i >= (b); --i)
#define QUICKIO                  \ios::sync_with_stdio(false); \cin.tie(0);                  \cout.tie(0);
using namespace std;int a,b,c;
double dp[105][105][105];int main()
{memset(dp,0,sizeof(dp));cin>>a>>b>>c;dp[a][b][c]=1;per(i,a,1)per(j,b,1)per(k,c,1){double tmp=i*j+j*k+i*k;if(j-1>=0)dp[i][j-1][k]+=i*j/tmp*dp[i][j][k];if(i-1>=0)dp[i-1][j][k]+=i*k/tmp*dp[i][j][k];if(k-1>=0)dp[i][j][k-1]+=k*j/tmp*dp[i][j][k];}double ansi=0, ansj=0, ansk=0;rep(i,1,a) rep(j,1,100) ansi+=dp[i][j][0];rep(i,1,b) rep(j,1,100) ansj+=dp[0][i][j];rep(i,1,c) rep(j,1,100) ansk+=dp[j][0][i];cout<<fixed<<setprecision(10)<<ansi<<" "<<ansj<<" "<<ansk<<endl;return 0;
}

转载于:https://www.cnblogs.com/samhx/p/cfr301d2d.html

「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)相关推荐

  1. 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)

    题意与分析 (CodeForces - 603A) 这题真的做的我头疼的不得了,各种构造样例去分析性质... 题意是这样的:给出01字符串.可以在这个字符串中选择一个起点和一个终点使得这个连续区间内所 ...

  2. 贪心 Codeforces Round #301 (Div. 2) B. School Marks

    题目传送门 1 /* 2 贪心:首先要注意,y是中位数的要求:先把其他的都设置为1,那么最多有(n-1)/2个比y小的,cnt记录比y小的个数 3 num1是输出的1的个数,numy是除此之外的数都为 ...

  3. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  4. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  5. 「日常训练」Skills(Codeforce Round #339 Div.2 D)

    题意(CodeForces 614D) 每个人有\(n(n\le 10^5)\)个技能,技能等级都在\([0,10^9]\)的范围,每个技能有一个当前等级,所有技能的最高等级都为A.一个人的力量被记做 ...

  6. 「日常训练」 Genghis Khan the Conqueror(HDU-4126)

    题意 给定\(n\)个点和\(m\)条无向边(\(n\le 3000\)),需要将这\(n\)个点连通.但是有\(Q\)次(\(Q\le 10^4\))等概率的破坏,每次破坏会把\(m\)条边中的某条 ...

  7. Codeforces Round #301 (Div. 2) C. Ice Cave BFS

    C. Ice Cave Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/problem/C ...

  8. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心

    B. School Marks Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/probl ...

  9. Codeforces Round #301 (Div. 2) B. School Marks

    其实是很水的一道bfs题,昨晚比赛的时候没看清题意,漏了一个条件. 1 #include<cstdio> 2 #include<cstring> 3 #include<i ...

最新文章

  1. 网站推广专员浅析不做大幅修改如何调整网站推广内容?
  2. 大循环在内,小循环主外为什么会效率高
  3. C# 类中继承接口的属性
  4. 成功解决PermissionError: [Errno 13] Permission denied: './data\\mnist\\train-images-idx3-ubyte'
  5. UFLDL教程:数据预处理
  6. nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
  7. 感恩有您!《大数据》祝您新年快乐!
  8. UnicodeDecodeError(转)
  9. 推荐一个强大的Go库-rk-boot,未来 Go领域的SpringBoot?
  10. 最新数据:中国网民超10亿,中老年群体增速最快
  11. cocos2D中实现滑动菜单CCScrollView+CCMenu效果,(注意不是cocos2D-x)!!
  12. python脚本实现ipv6的ddns功能
  13. linux cpu 个数、核心数、线程数
  14. 我常用的几个软件的注册码
  15. 第9课:利用 Headers 的 Cookie 和 User-agent 伪装自己
  16. 【逗老师带你学IT】阿里云监控报警回调+转发企业微信+转发SnmpTrap+PRTG
  17. 攻防世界MISC进阶区刷题记录
  18. 关于 kubernetes网络(CNI规范)中Calico,NetworkPolicy(网络策略)方面的一些笔记
  19. 小白学习java集合框架(集合Collection)
  20. 电子科技大学格拉斯哥学院基础实践——共享单车的调查

热门文章

  1. 2022-2028年中国钢丸行业市场行情监测及未来前景规划报告
  2. 2022-2028年中国机制砂石行业投资分析及前景预测报告
  3. 2022-2028年中国内衣行业研究及前瞻分析报告
  4. Ubuntu 16.04 安装 Docker - Dependency failed for Docker Application Container
  5. logging.basicConfig函数
  6. 单步调试 step into/step out/step over 区别
  7. 机器学习——标准化/归一化的目的、作用和场景
  8. LeetCode简单题之按照频率将数组升序排序
  9. LeetCode简单题之递增顺序搜索树
  10. 科技公司合作伙伴清单