......求调
查看原帖
......求调
1641485
double_bird楼主2025/8/3 10:28

是不是我贪心思想有错误啊

#include<bits/stdc++.h>
using namespace std;
int n,t,w;
double ans;

struct abc{
    int m,v;
}a[105];

bool cmp(abc a1,abc a2){return a1.v>a2.v;}

int main()
{
    cin>>n>>t;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].m>>a[i].v;
    }
    sort(a,a+n,cmp);
    reverse(a,a+n);
    for(int i=0;i<n;i++)
    {
        if(w+a[i].m<=t)
        {
            ans+=a[i].v;
            w+=a[i].m;
        }
        else
        {
            ans+=((t-w)/a[i].m)*a[i].v;
            break;
        }
    }
    cout<<fixed<<setprecision(2)<<ans;
}
2025/8/3 10:28
加载中...