zoukankan      html  css  js  c++  java
  • Hdoj 1203.I NEED A OFFER! 题解

    Problem Description

    Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。“I NEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,他可以收到至少一份offer的最大概率。(如果Speakless选择了多个学校,得到任意一个学校的offer都可以)。

    Input

    输入有若干组数据,每组数据的第一行有两个正整数n,m(0<=n<=10000,0<=m<=10000)
    后面的m行,每行都有两个数据ai(整型),bi(实型)分别表示第i个学校的申请费用和可能拿到offer的概率。
    输入的最后有两个0。

    Output

    每组数据都对应一个输出,表示Speakless可能得到至少一份offer的最大概率。用百分数表示,精确到小数点后一位。

    Sample Input

    10 3
    4 0.1
    4 0.2
    5 0.3
    0 0
    

    Sample Output

    44.0%
    
    
    
    Hint
    You should use printf("%%") to print a '%'.
     
    

    Author

    Speakless

    Source

    Gardon-DYGG Contest 2


    思路

    与01背包思路相似的题目,状态转移的时候因为是概率,所以要改成相乘

    因为概率最大为1,所以初始化的时候初始化为1.0就好了

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int c[10010];
    double p[10010];
    double f[10010];
    int main()
    {
    	int maxCost,kinds;
    	while(cin>>maxCost>>kinds)
    	{
    		if(maxCost==0 && kinds==0) break;
    		for(int i=1;i<=kinds;i++)
    		{
    			cin >> c[i] >> p[i];
    			p[i] = 1 - p[i]; //表示没被录取的概率 
    		} 
    		for(int i=0;i<=maxCost;i++)
    			f[i] = 1.0;
    		for(int i=1;i<=kinds;i++)
    			for(int j=maxCost;j>=c[i];j--)
    				f[j] = min(f[j],f[j-c[i]]*p[i]);//最小化没被录取的概率也就是最大化被录取的概率
    		
    		printf("%.1lf%%
    ",(1-f[maxCost])*100);
    	}		
    	return 0;
    }
    
  • 相关阅读:
    LeetCode题解之Flipping an Image
    LeetCode 之Find Minimum in Rotated Sorted Array
    LeetCode题解Transpose Matrix
    LeetCode 题解之Minimum Index Sum of Two Lists
    LeetCode题解之Intersection of Two Linked Lists
    LeetCode 题解之Add Two Numbers II
    LeetCode题解之Add two numbers
    href="#"与href="javascript:void(0)"的区别
    有关ie9 以下不支持placeholder属性以及获得焦点placeholder的移除
    ie7下属性书写不规范造成的easyui 弹窗布局紊乱
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/10034120.html
Copyright © 2011-2022 走看看