nyoj-325-zb的生日

来源:互联网 发布:格林德沃 知乎 编辑:程序博客网 时间:2024/06/06 01:37


题目链接:

http://acm.nyist.net/JudgeOnline/problem.php?pid=325


解题思路:用深搜 


参考代码:

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,a[10010];int ans;///存放最优的 分瓜差值;void dfs(int sum,int cur,int i){    if(i>=n)///  跳出条件,将每一个数据都遍历完成后;        return;    int tt=sum-2*cur;    if(tt<0)        tt=-tt;    if(tt<ans)        ans=tt;    dfs(sum,cur+a[i+1],i+1);    dfs(sum,cur,i+1);}int main(){    while(~scanf("%d",&n))    {       int  sum=0;        for(int i=0;i<n;i++)        {            scanf("%d",&a[i]);            sum+=a[i];        }        ans=sum;        dfs(sum,a[0],0);        printf("%d\n",ans);    }    return 0;}