30分求调
查看原帖
30分求调
1406896
crafting_table楼主2024/12/16 20:12

具有 WA AC TLE求调

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

int maxx(int x,int y){return (x>y?x:y);}

int t,m;
int ts[1005],vs[1005];
int dp[2][10000005];
int ans = -1000000000;

signed main()
{
    scanf("%lld%lld",&t,&m);
    for(int i=1;i<=m;i++){scanf("%lld%lld",ts+i,vs+i);}

    dp[0][0] = 0;
    for(int i=1;i<=10000005;i++){dp[0][i]=0;}

    for(int i = 1;i <= m;i++){
        for(int j = 1;j <= t;j++){
            for(int k = 0;k*ts[i]<=j;k++){
                dp[i&1][j] = dp[(i-1)&1][j];
                if(j-k*ts[i]>=0){
                    dp[i&1][j] = maxx(dp[(i-1)&1][j],dp[(i-1)&1][j-k*ts[i]]+k*vs[i]);
                }
            }
        }
    }

    for(int i = 0;i<=t;i++)
    {
        ans = maxx(ans,dp[m&1][i]);
    }
    printf("%lld",ans);
    return 0;
}
2024/12/16 20:12
加载中...