前言
持续更新中,loading。。。
1、部分背包问题
#include<bits/stdc++.h>
using namespace std;
struct gold{
int w,v;
}a[110];
bool cmp(gold aa,gold bb){
return aa.v*bb.w>aa.w*bb.v;
}
int main(){
int N,T;
cin>>N>>T;
double ans=0;
for(int i=0;i<N;i++){
cin>>a[i].w>>a[i].v;
}
sort(a,a+N,cmp);
for(int i=0;i<=N;i++){
if(a[i].w<=T)
ans += a[i].v,T-=a[i].w;
else{
ans += a[i].v*T*1.0/(a[i].w*1.0);
break;
}
}
printf("%.2lf",ans);
return 0;
}