時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小(就是小珂得到的郵票分值和與小明的差值最小),現在每張郵票的分值已經知道了,他們已經分好了,你知道最後他們得到的郵票分值和相差多少嗎?
輸入第一行只有乙個整數m(m<=1000),表示測試資料組數。
接下來有乙個整數n(n<=1000),表示郵票的張數。
然後有n個整數vi(vi<=100),表示第i張郵票的分值。
輸出輸出差值,每組輸出佔一行。
樣例輸入25
2 6 5 8 9
32 1 5
樣例輸出02
今天開始刷01揹包,總是忘記把dp陣列置0,有和我出一樣毛病的小夥伴要多多注意。。。。。。
分析:這道題和我上午在hd上刷的一道題很像,本題的揹包容量是郵票的分值,因為要分為兩份分值相差最小的,所以揹包容量就是郵票的總分值sum/2,因為郵票的價值也是自身的分值,所以推出狀態轉移方程為:dp[j]=max(dp[j],dp[j-s[i]]+s[i])。
#include #include#include#includeusing namespace std;
int main()
printf("%d\n",sum-dp[sum/2]-dp[sum/2]);
}return 0;
}
NYOJ 456 郵票分你一半
郵票分你一半 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已...
nyoj 456 郵票分你一半
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已經分好了,你知...
NYOJ 456 郵票分你一半
標籤 動態規劃,揹包問題,01揹包 相似題目 題目小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩份,並且使這兩份郵票的分值和相差最小 就是小珂得到的郵票分值和與小明的差值最小 現在每張郵票的分值已經知道了,他們已經分好了,你知道最後他們得到的郵票分...