01背包

一维

int T, m, t[110], v[110], dp[1010];
for(int i = 1; i <= m; i++){
    for(int j = T; j >= t[i]; j--){
        dp[j] = max(dp[j-t[i]] + v[i], dp[j]);
    }
}

二维

int T, m, t[110], v[110], dp[101][1010]; 
for(int i = 1; i <= m; i++){
    for(int j = T; j >= 0; j--){
        if(j >= t[i]){
            dp[i][j] = max(dp[i-1][j], dp[i-1][j-t[i]] + v[i]);
        }else{
            dp[i][j] = dp[i-1][j];
        }
    }
}
posted @ 2020-08-04 13:07  LT-Y  阅读(68)  评论(0编辑  收藏  举报