求助
查看原帖
求助
690839
Mouls_me楼主2022/10/22 20:23

今天想换一种方法写这道题 于是就想到了贪心 但写完代码后提交上去,发现只有90分 第一个测试点WA 不知为何 求各位大佬帮助```cpp


#include<bits/stdc++.h>
using namespace std;
#define int long long

struct T
{
    int v;
    int s;
    double k;
}a[10005];
int t,n;
int cmp(T a,T b)
{
    if(a.k==b.k) 
    {
        return a.s<b.s;
    }
    else return a.k>b.k;
}
signed main()
{
    cin>>t>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].s>>a[i].v;
        a[i].k=a[i].v/a[i].s*1.0;
    }
    sort(a+1,a+n+1,cmp);
    int i=1;
    int sum=0;
    while (i<=n)
    {
        if(t>=a[i].s)
        {
            t-=a[i].s;
            sum+=a[i].v;
        }
        else 
        {
            i++;
        }
    }
    cout<<sum<<endl;
    return 0;
}
2022/10/22 20:23
加载中...