本文主要是介绍uva 562,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简单背包 容量为所有硬币和的一半
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>using namespace std;int a[110];
int f[51000];
int main()
{int t;scanf("%d",&t);while(t--){memset(f, 0, sizeof(f));int n;scanf("%d",&n);int sum = 0;for(int i = 0; i < n; i++){scanf("%d",&a[i]);sum += a[i];}int V = (sum+1)/2;for(int i = 0; i < n; i++){for(int j = sum; j >= a[i]; j--){f[j] = max(f[j], f[j-a[i]]+a[i]);}}printf("%d\n",abs(2*f[V]-sum));}return 0;
}
这篇关于uva 562的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!