首页 > 其他 > 详细

hdu 1203 转换的01包问题。。。。

时间:2016-08-11 15:54:05      阅读:207      评论:0      收藏:0      [点我收藏+]

俗话说的话 正难则反。,。  这个基本的思想都用不好的话 回家种田去吧。

#include<cstdio>
#include<string.h>
#include<iostream>
using namespace std;
double minn(double x,double y)
{
    if(y<x) return y;
    else return x;
}
int main()
{
    int n,m;
    int w[10010];
    double p[10010];
    double dp[10001];
    while(cin>>n>>m)
    {
        if(n==0&&m==0) break;
        for(int i=1;i<=m;i++)
        {
            double x;
            cin>>w[i]>>x;
            p[i]=1-x;
 //           cout<<p[i]<<endl;
        }
        dp[0]=1.000;
        for(int i=1;i<=n;i++) dp[i]=1.00;
        for(int i=1;i<=m;i++)
        {
            for(int j=n;j>=w[i];j--)
            {
              //  cout<<dp[j]<<‘ ‘;    
                dp[j]=minn(dp[j],dp[j-w[i]]*p[i]);
        //        cout<<‘ ‘<<dp[j-w[i]]*p[i]<<‘ ‘<<dp[j]<<‘ ‘;
            }
        //    cout<<endl;
        }
        double ans=(1-dp[n])*100;
        printf("%.1f%%\n",ans);
    }
    return 0;
} 

 

hdu 1203 转换的01包问题。。。。

原文:http://www.cnblogs.com/z1141000271/p/5760993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!