#13648: 簡易理解答案


dark_integrator (Alkaid)

學校 : 臺北市私立延平高級中學
編號 : 73410
來源 : [111.254.62.4]
最後登入時間 :
2022-06-02 23:29:50
d637. 路過的鴨duck -- jack1 | From: [27.147.43.55] | 發表日期 : 2018-04-01 18:48

#include<stdio.h>
#include<algorithm>
using namespace std;

int main(){
int n, a, b;
scanf("%d", &n);
int v[2][101], size[n+1], value[n+1];
for(int i = 1; i <= n; i ++){
scanf("%d %d", &size[i], &value[i]);//size[6] = 25, value[6] = 100
}
for(int j = 0; j <= 100; j++){
v[0][j] = 0, v[1][j] = 0;
}
//algorithm
for(int i = 1;i <= n; i++){
for(int j = 1; j <= 100; j++){//v[6][50]
v[(i-1)%2][j] = max(v[i%2][j],v[(i-1)%2][j-1]); //v[6][50] = max(v[5][50],v[6][49]);
if(j-size[i] >= 0){
v[(i-1)%2][j] = max(v[i%2][j-size[i]]+value[i],v[(i-1)%2][j]);//v[6][50]=max(v[5][50-size[6]]+value[6],v[6][50])
}
}
}
printf("%d\n", v[(n-1)%2][100]);
}

 
ZeroJudge Forum