HDU 1203 I NEED A OFFER! (背包的多项式操作)
2011-07-30 16:38
344 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1203
一个简单的0-1背包问题 特别之处就是算的是概率 是乘法的操作 所以把原来的加法用函数代替为相应的操作即可
一个简单的0-1背包问题 特别之处就是算的是概率 是乘法的操作 所以把原来的加法用函数代替为相应的操作即可
#include<iostream> #include<stdio.h> #include<cstring> using namespace std; int m; double dp[10001]; double f(double x,double y) { return 1-(1-x)*(1-y); } void ZeroOnePack(int cost, double weight) { for (int i = m; i >= cost; i--) dp[i] = max(dp[i], f(dp[i-cost],weight)); } int main() { int n; while(cin>>m>>n) { memset(dp,0,sizeof(dp)); if(!m&&!n) break; for(int i=1;i<=n;i++) { int a; double b; cin>>a>>b; ZeroOnePack(a,b); } printf("%.1lf%%\n",dp[m]*100); } return 0; }
相关文章推荐
- HDU 1203 I NEED A OFFER!(01背包基础题)
- hdu 1203 I NEED A OFFER!(dp||背包)
- hdu 1203 I NEED A OFFER (0-1背包)
- 【Eternallyc】HDU-1203-I NEED A OFFER!(0-1背包问题)
- HDU 1203 I NEED A OFFER!(背包)
- 动态规划:HDU-1203-0-1背包问题:I NEED A OFFER!
- HDU 1203 I NEED A OFFER! (背包)
- hdu 1203 dp(0,1 背包) I NEED A OFFER!
- [HDU 1203 I NEED A OFFER!] 01背包
- 概率数据HDU-1203 I NEED A OFFER!(0、1背包)
- hdu 1203 I NEED A OFFER! 不错的01背包求最小值
- hdu 1203 I NEED A OFFER!--01背包
- HDU1203--I NEED A OFFER!--01背包
- HDU1203 I NEED A OFFER! (0-1背包)
- HDU 1203 I NEED A OFFER!(01 背包DP)
- HDU 1203 I NEED A OFFER!(01背包概率问题)
- HDU 1203 I NEED A OFFER! 0-1背包
- 【HDU 1203】 I NEED A OFFER!(01背包)
- hdu 1203 I NEED A OFFER! <背包的变形>
- HDU-1203 I NEED A OFFER!(0、1背包)