Greedy——HDOJ 1203

来源:互联网 发布:医学生常用的软件 编辑:程序博客网 时间:2024/06/03 23:21

HDOJ 1203 题目描述

/*HDOJ 1203典型的贪心,类似于01背包和部分背包的中间类型*/#include <iostream>#include <iomanip>#include <algorithm>using namespace std;struct School{int a; //申请费用double b; //录取概率double scale; // b/a};bool cmp(const School &a,const School &b){return (a.scale > b.scale); //按照scale降序排序}int main(){School of[1000],su[1000];int n,m,k;double success;while(cin>>n>>m){if((n == 0) && (m == 0))break;for(int i=0;i<m;i++){cin>>of[i].a>>of[i].b;of[i].scale=of[i].b/of[i].a;}sort(of,of+m,cmp);success=1.0;k=0;for(i=0;i<m;i++){if(n >= of[i].a){n-=of[i].a;su[k]=of[i];k++;}}for(i=0;i<k;i++)success *= (1-of[i].b);success=(1-success)*100;cout<<setiosflags(ios::fixed);cout<<setprecision(1)<<success<<"%"<<endl;}return 0;}


原创粉丝点击