題目大意:
有一堆紙幣要平分給兩個人,要求他們兩個之間的差值盡量的小。
思路:
類似於揹包問題,將紙幣的和當作是體積,從sum/2開始逆序減算出最大的重量(即dp[sum/2]),然後利用sum - 2 * dp[i] 得出的就是答案了。
忘記初始化dp wa
**:
#include
using
namespace
std;
#include
#include
int dp[100005],a[100005];
int main()
memset(dp,0,sizeof(dp));
for(int i = 1; i <= n ; i++)
}printf("%d\n",sum - 2 * dp[sum / 2]);
}return
0;}
UVA562(平分錢幣問題)
題目大意 給定 n個硬幣,要求將這些硬幣平分以使兩個人獲得的錢盡量多,求兩個人分到的錢最小差值。思路 將它所給出的n個錢幣加起來sum,將sum 2當作體積,求出在sum 2下的最大值,sum 2 dp sum 2 這個題目wa幾次,原因就是陣列開小了,悲催的英文題,表示看不懂.include in...
UVA562(平分錢幣問題)
題目大意 給定 n個硬幣,要求將這些硬幣平分以使兩個人獲得的錢盡量多,求兩個人分到的錢最小差值。思路 將它所給出的n個錢幣加起來sum,將sum 2當作體積,求出在sum 2下的最大值,sum 2 dp sum 2 這個題目wa幾次,原因就是陣列開小了,悲催的英文題,表示看不懂.include in...
UVA 562 DP入門之01揹包
題意 有一堆硬幣,如何平分,可以讓兩堆硬幣的價值之差最小 剛開始想貪心的,姿勢不對,直接wa 將硬幣總和sum求出來,將sum 2當做容器就好,搜尋sum 2 0 符合條件的 列舉出所有的可能性之和。然後最後就是 差值 q sum 2 最大值 如下 include include include i...