比赛 2026.9.5 评测结果 EEEEEATTTTTWEEEEEEWWTTTTT
题目名称 Asteroid Mining 最终得分 4
用户昵称 wmlsxzh 运行时间 24.464 s
代码语言 C++ 内存使用 34.46 MiB
提交时间 2026-09-05 10:15:19
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define MAXN 500000
#define ll long long
ll kua[MAXN][2];//0value 1mass
ll n,m,tb[MAXN][253];
ll f(ll i,ll rest){
    if(i==n)return 0;
    if(rest==0)return 0;
    if(rest<253&&tb[i][rest])return tb[i][rest];
    int p1=f(i+1,rest);
    int p2=0;
    if(kua[i][1]<=rest){
        p2=f(i+1,rest-kua[i][1])+kua[i][0];
    }
    return tb[i][rest]=max(p1,p2);
}
int main(){
    freopen("Mining.in","r",stdin);
    freopen("Mining.out","w",stdout);
    scanf("%lld %lld",&n,&m);
    for(int i=0;i<n;++i){
        scanf("%lld %lld",&kua[i][0],&kua[i][1]);
    }
    ll ans=f(0,m);
    printf("%lld",ans);
    return 0;
}