#include<stdio.h>
#define max(x,y) x>y?x:y
int main(){
int n,x,y;
scanf("%d",&n);
while(n--){
int num[1010]={0};
int sum[100010]={0};
int m,i,k,max=0;
scanf("%d",&m);
for(i=1;i<=m;i++){
scanf("%d",&num[i]);
max+=num[i];
}
k=max/2;
for(x=1;x<=m;x++){
for(y=k;y>=num[x];y--){
sum[y]=max(sum[y],sum[y-num[x]]+num[x]);
}
}
printf("%d\n",max-2*sum[k]);
}
}
哇哈,这题和zb的生日是一模一样的题目。。。用的是递推算法,这回终于明白了