80哇第一点求助
查看原帖
80哇第一点求助
362558
Bread_m楼主2021/10/26 11:36

死活改不过来了

#include<bits/stdc++.h>
using namespace std;
double t; int A,n;
struct co{
  double m,v;
}a[105];
bool cmp(co x,co y)
{
    return x.v*y.m>y.v*x.m;
}
int main(){
   float ans=0;
   cin >> n >> t;
   int c = t;
   for(int i=0;i<n;i++) cin >> a[i].m >> a[i].v;
   sort(a,a+n,cmp);
   for(int i=0;i<n;i++){
       A=i;
       if(a[i].m>c) break;
       c-=a[i].m;
       ans +=a[i].v;
   }
   if(A<n) ans+=a[A].v*c*1.0/(a[A].m*1.0); //余下重量存无法完整存下的最高价值的分割
   printf("%.2lf",ans);
   return 0;

}
2021/10/26 11:36
加载中...