NYOJ-456 邮票分你一半 AC 分类: NYOJ 2014-01-02 14:33 152人阅读 评论(0) 收藏


#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
",max-2*sum[k]);
		
	}
}

哇哈,这题和zb的生日是一模一样的题目。。。用的是递推算法,这回终于明白了

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文为博主原创文章,未经博主允许不得转载。
原文地址:https://www.cnblogs.com/you-well-day-fine/p/4671684.html