//Accepted 1492 KB 110 ms //背包 //把si看成weight,Fi看成value,这可以表示成当dp[j]=max(dp[j-weight[i]]+value[i]) //考虑到si可能为负,需要整段区间的平移 //背包过程中,根据weight的正负,我们需要考虑dp的顺序,如果weight为正,这j从大到小 //如果weight为负,则要从小到大,这是根据dp[i][j]=max(dp[i][j],dp[i-1][j-weight[i]]+value[i]) //如…