本题属于01背包模型。(到达型01背包+条件限制)
在写题过程中一直困扰我的一个问题:
为啥这个状态转移能保证过程中的量没由超出题目规定呢?
//dp[i][j] 考虑前i次调节音乐大小,能否使音量大小为j
for(int i=1;i<=n;i++){
cin>>v;
for(int j=0;j<=Max;j++){
if(j+v<=Max&&dp[i-1][j])dp[i][j+v]=1;
if(j-v>=0&&dp[i-1][j])dp[i][j-v]=1;
//假设两个if都不满足,是不是可以直接输出-1呢?
}
}
我们知道,第 [ i ] [i] [i]