HDU-2955 Robberies 01背包 + 概率
来源:互联网 发布:软件正版化实施方案 编辑:程序博客网 时间:2024/06/01 10:51
题目链接
刚开始以为概率就2位小数 乘100来做WA
看了讨论区恍然大悟。
用成功逃走的概率当做价值!银行的总钱数当做背包容量!
#include <stdio.h>#include <string.h>#include <iostream>#include<functional>#include <queue>#include <string>#include <map>#include <algorithm>using namespace std;const int maxn = 106;const int inf = 1<<30;typedef __int64 LL;int n,V;float P,dp[maxn*maxn],p[maxn];int m[maxn];void GetDp(){memset( dp,0,sizeof(dp) );dp[0] = 1;for( int i = 0; i < n; i ++ ){for( int j = V; j - m[i] >= 0; j -- ){dp[j] = max( dp[j],dp[j-m[i]]*p[i] );}}}int main(){#ifndef ONLINE_JUDGE freopen("data.txt","r",stdin); #endif int cas;scanf("%d",&cas);while( cas -- ){scanf("%f%d",&P,&n);P = 1 - P;V = 0;for( int i = 0; i < n; i ++ ){scanf("%d%f",&m[i],&p[i]);p[i] = 1-p[i];V += m[i];}GetDp();int flag = 0;for( int i = V; i >= 0; i -- ){if( dp[i] >= P ){flag = i;break;}}printf("%d\n",flag);}return 0;}
0 0
- HDU-2955 Robberies 01背包 + 概率
- HDU 2955 Robberies(01背包+概率)
- HDU 2955|Robberies|01背包|概率
- HDU 2955 Robberies(经典01背包概率问题)
- HDU 2955 Robberies (转化概率-01背包)
- hdu 2955Robberies(01背包 概率计算)
- hdu 2955 Robberies(概率01背包,反向思维)
- HDU 2995 Robberies 概率背包
- HDOJ.2955 Robberies (01背包+概率问题)
- hdu 2955 01 背包 Robberies
- hdu 2955 Robberies--01背包
- Hdu 2955 Robberies//01背包
- hdu 2955 Robberies (01背包)
- hdu 2955 Robberies 01背包
- HDU 2955 Robberies(01背包)
- HDU 2955 Robberies (01背包)
- hdu 2955 Robberies(01背包)
- hdu 2955 Robberies(01背包)
- 表已经创建再增加约束的方法
- 堆排序—源码
- 安装sql server 2008 报错“检查 Microsoft Visual Studio 2008 的早期版本”失败的问题解决
- shell中各括号
- Scala println Array
- HDU-2955 Robberies 01背包 + 概率
- android:ClassNotFoundException for Activity class的解决方法
- Android知识杂记
- Android 动画
- asp.net_Excel数据导入数据库
- [算法系列之二]二叉树各种遍历
- Windows学习心得【对话框2】
- 怎样编译 fmb & pld 文件
- DIV设置位置居中