1 solutions

  • 1
    @ 2025-5-4 16:28:50
    #include <bits/stdc++.h> 
    using namespace std;
    int dp[10005],price[105][105];
    int main(){
        int t,n,m,ans;
        scanf("%d%d%d",&t,&n,&m);
        for(int i = 1;i<=t;i++)
            for(int j = 1;j<=n;j++)scanf("%d",&price[i][j]);
        ans = m;
        for(int i = 1;i<=t;i++){
            memset(dp,INT_MAX,sizeof(dp));
            dp[ans] = ans;
            for(int j = 1;j<=n;j++)
                for(int k = ans;k>=price[i][j];k--)dp[k-price[i][j]] = max(dp[k-price[i][j]],dp[k]+price[i+1][j]-price[i][j]);
            int rong_qi = 0;
            for(int j = 0;j<=ans;j++)rong_qi = max(rong_qi,dp[j]);
            ans = rong_qi;
        }
        printf("%d",ans);
        return 0;
    }
    

    Information

    ID
    755
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    10
    Accepted
    4
    Uploaded By