#include<bits/stdc++.h>
using namespace std;
int n,t,s1;
double s2;
struct jb{//定义一个结构体;
int m;
int v;
double dj;
};
jb a[101];
bool cmp(jb a,jb b){
return a.dj >b.dj ;//用int和bool都一样;对结构体比大小;
}
int main(){
cin>>n>>t;
for(int i=0;i<n;i++ ){
cin>>a[i].m >>a[i].v ;
a[i].dj =1.0*a[i].v /a[i].m;
}sort(a,a+n,cmp);
for(int i=0;i<n;i++){
if(s1+a[i].m <=t){
s1+=a[i].m ;
s2+=a[i].v ;
}else {
s2+=(t-s1)*a[i].dj;
break;
}
}printf("%.2f",s2);
return 0;
}
贪心之部分背包问题
最新推荐文章于 2024-05-22 21:55:29 发布