hdu4815 (概率DP)
来源:互联网 发布:乐视电视连不上网络 编辑:程序博客网 时间:2024/05/22 15:36
由于没有专门练过概率DP , 场上硬推的,由于一点小失误WA了两发 。
我们很容易求出来d[i][j],表示前i道题,得分为j的概率 。 这样,最终打完所有题目之后猴子得任意分数的概率我们就知道了,老虎要想赢就要至少得和他一样的分数,那么就很好办了,从0~max分,不断相加概率,当概率大于P时的分数就是答案 。
细节见代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 50;const double INF = 10000000.0;int T,n,a[maxn];double p,d[50][40000+100];int main() { scanf("%d",&T); while(T--) { scanf("%d%lf",&n,&p); ll sum = 0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum += a[i]; } memset(d,0,sizeof(d)); d[0][0] = 1.0; for(int i=1;i<=n;i++) { for(int j=0;j<=sum;j++) { if(j >= a[i]) d[i][j] += d[i-1][j-a[i]]/2; d[i][j] += d[i-1][j]/2; } } int ans; double pp = 0.0; for(int i=0;i<=sum;i++) { pp += d[n][i]; if(pp > p || fabs(pp-p) < 1e-6) { ans = i ; break; } } printf("%d\n",ans); } return 0;}
1 0
- hdu4815 (概率DP)
- hdu4815- Little Tiger vs. Deep Monkey-概率dp或者背包计数
- poj3071(概率DP)
- codeforces148D(概率DP)
- poj2151(概率DP)
- hdu4870(概率dp)
- hdu3853(概率dp)
- zoj3822(概率DP)
- Codeforce148D(概率dp)
- 概率统计(DP)
- hdu5001(概率dp)
- hdu4405(概率dp)
- zoj3822(概率dp)
- zoj3329(概率dp)
- hdu5001(概率dp)
- POJ2096(概率dp)
- Activation (概率DP)
- HDU5781(概率DP)
- UNITY3D学习笔记14
- 智能指针的原理与设计
- python基础教程学习笔记 — 准备Windows下开发环境
- Tomcat关闭过程(Tomcat源码解析四)
- Android侧滑--防QQ实现侧滑
- hdu4815 (概率DP)
- LVS之NAT模式简单示例
- mysql distinct 与 group by
- 【bzoj4031】 HEOI2015小Z的房间 矩阵树定理
- FreeMarker 入门
- json
- 单片机IO口模拟SPI四种模式的程序
- LeetCode(25)Reverse Nodes in k-Group
- 扫盲文件完整性校验——关于散列值和数字签名