557 - Burger(递推)
来源:互联网 发布:吴昕淘宝店omg关了吗 编辑:程序博客网 时间:2024/05/01 03:13
该题正解是递推, 我一开始就老老实实的算的概率,用到了例题“Candy”的算法,确实算出了正确答案,但是也许测试组数非常多,最终超时。
后来打了一张巨表(确实可以打出来的,这个表非常有规律,连续的很多n的概率是一样的,大概用几分钟),但知道不是正解,也就算了。
正解是递推,反着求最终二人不能吃到相同汉堡的概率,用组合数概率公式很容易表示出其通项公式:f(i) = 2^(2-i)*C(i-2,(i-2)/2);表示最终两种汉堡各剩下一个的概率。
但是组合数非常大,很可能超long long。而且二者相乘,势必损失很多精度。
既然我们能写出其通项公式,那么也不难写出递推式,做个商即可。 得到:f(i) = f(i-2)*(i-3)/(i-2);
细节参见代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 1000000000;const double p = 0.5;const int maxn = 100000 + 5;int T,n,m;double f[maxn];void init() { f[2] = 1; for(int i=4;i<maxn;i++) f[i] = f[i-2]*(i-3)/(i-2);}int main() { scanf("%d",&T); init(); while(T--) { scanf("%d",&n); printf("%.4f\n",1-f[n]); } return 0;}
0 0
- 557 - Burger(递推)
- UVA 557 - Burger(概率 递推)
- UVa 557 - Burger(概率+递推)
- uva557 - Burger 概率递推
- Burger - UVa 557 滚动数组 暴力 递推 打表
- UVA557 Burger 数论 递推组合
- uva 557 - Burger(概率)
- UVA 557 Burger (数学)
- uva 557 - Burger
- UVa 557 - Burger
- uva 557 Burger
- UVa 557 - Burger
- UVa 557 - Burger (概率)
- UVa 557 - Burger
- UVA - 557 Burger
- UVA 557(p344)----Burger
- uva 557 Burger
- Burger
- 拷贝构造函数应用场景
- 使用iptables配置linux服务器请求转发
- Github上README.md介绍
- hdu5384-多校 ac自动机
- CSU 1672 Pool in minecraft
- 557 - Burger(递推)
- Objective-C类,NSUrl介绍和使用
- 小胖说事38----tableview:ios7 分割线短 15 像素(废弃) ios8方法如何将分割线还原
- android:ellipsize属性的含义
- Qt信号与槽
- STM32中assert_param的使用
- [leetcode 220]Contains Duplicate III
- crontab 定时完成某任务
- web 前端学习笔记(1)