您的位置:首页 > 其它

nyoj325-zb的生日

2017-03-13 19:52 274 查看
思路:

搜索+剪

#include <iostream>
#include <queue>
#include <stdio.h>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int a[105];
int n;
int sum;
int ans=0x3f3f3f3f;
void dfs(int pos,int num)
{
if(pos==n+1)
{
int tep=sum-num;
tep=tep-(sum-tep);
if(tep<0)
tep=-tep;
ans=min(ans,tep);
return ;
}
if(num>sum/2)
{
ans=min(ans,sum-num);
return ;
}
for(int i=pos;i<=n;i++)
{
dfs(i+1,num+a[i]);
}
}
int main()
{

while(~scanf("%d",&n))
{
ans=0x3f3f3f3f;
sum=0;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),sum+=a[i];
sort(a+1,a+1+n);
dfs(1,0);
printf("%d\n",ans);
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: