比赛 2026.9.5 评测结果 AAWWWAEEEEEAEEWWEWAAAAAAE
题目名称 Asteroid Mining 最终得分 40
用户昵称 小福鑫 运行时间 6.186 s
代码语言 C++ 内存使用 6.91 MiB
提交时间 2026-09-05 11:19:49
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,v[1000001],c[1000001],f[1000001],cnt,ans;
bool cmp(int a,int b){
    return a>b;
}
signed main(){
    freopen("Mining.in","r",stdin);
    freopen("Mining.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>c[i]>>v[i];
    }
    if(n<=1000){
        for(int i=1;i<=n;i++){
            for(int j=m;j>=v[i];j--){
              f[j]=max(f[j],f[j-v[i]]+c[i]);
            }
        }
        cout<<f[m];
        return 0;
    }
    sort(c+1,c+n+1,cmp);
    cnt=m/v[1];
    for(int i=1;i<=cnt;i++){
        ans+=c[i];
    }
    cout<<ans;
    
}