hdu-2955(01背包)Robberies
2014-03-23 08:30
375 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955
题意:小偷想偷银行的钱给出小偷被抓的概率和n个银行,接下来给你n行数据 每行给出分别是银行的钱数和小偷被抓的概率
求在不大于小偷被抓的概率下能得到银行的钱数是多少;
状态转移:
把钱数当成体积 不被抓概率当成价值
状态方程:dp[j] = max(dp[j],dp[j-v[i]] *w[i];
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
double dp[10005];
int n;
double p;
double w[105];
int v[105];
void DP(int V)
{
memset(dp,0,sizeof(dp));
dp[0] = 1.0;
for(int i = 0;i < n;i++)
{
for(int j = V;j >= v[i];j--)
{
dp[j] = max(dp[j],dp[j-v[i]]*(1-w[i]));
}
}
for(int i = V;;i--)
{
if(dp[i] > 1 - p)
{
printf("%d\n",i);
break;
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lf%d",&p,&n);
int sum = 0;
for(int i = 0;i < n;i++)
{
scanf("%d%lf",&v[i],&w[i]);
sum += v[i];
}
DP(sum);
}
}
题意:小偷想偷银行的钱给出小偷被抓的概率和n个银行,接下来给你n行数据 每行给出分别是银行的钱数和小偷被抓的概率
求在不大于小偷被抓的概率下能得到银行的钱数是多少;
状态转移:
把钱数当成体积 不被抓概率当成价值
状态方程:dp[j] = max(dp[j],dp[j-v[i]] *w[i];
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
double dp[10005];
int n;
double p;
double w[105];
int v[105];
void DP(int V)
{
memset(dp,0,sizeof(dp));
dp[0] = 1.0;
for(int i = 0;i < n;i++)
{
for(int j = V;j >= v[i];j--)
{
dp[j] = max(dp[j],dp[j-v[i]]*(1-w[i]));
}
}
for(int i = V;;i--)
{
if(dp[i] > 1 - p)
{
printf("%d\n",i);
break;
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lf%d",&p,&n);
int sum = 0;
for(int i = 0;i < n;i++)
{
scanf("%d%lf",&v[i],&w[i]);
sum += v[i];
}
DP(sum);
}
}
相关文章推荐
- 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背包,逆向思维)
- 动态规划专题(01背包)HDU 2955-Robberies
- HDU 2955 Robberies 变形01背包
- HDU 2955 Robberies (01背包)
- hdu 2955 Robberies(01背包)
- HDU 2955 Robberies 和 HDU 1203 I NEED A OFFER!【思维转化 + 01背包】好题 !!!
- HDU 2955 Robberies (01背包dp)
- HDU 2955 Robberies (01背包)
- hdu 2955 Robberies(01背包)
- HDU 2955 Robberies【01背包】
- HDU 2955 Robberies(01背包)
- HDU-2955-Robberies【01背包】
- hdu 2955 Robberies (01背包好题)