nyoj325_zb的生日(深搜+01背包)
2016-12-16 20:36
281 查看
原题链接》》》
深搜的解法:
01背包的做法:(险过!!)
深搜的解法:
#include<stdio.h> #include<string.h> #include<math.h> int N,total; int A[21]; int min; void dfs(int cur,int num){ int t=(int)fabs(total-2*num); if(min>t) min=t; if(num>total/2) return ; for(int i=cur+1;i<N;i++) dfs(i,num+A[cur]); } int main(){ int i; while(scanf("%d",&N)!=EOF){ total=0;min=20000; for(i=0;i<N;i++){ scanf("%d",&A[i]); total+=A[i]; } dfs(-1,0); printf("%d\n",min); } return 0; }
01背包的做法:(险过!!)
#include<stdio.h> #include<string.h> int main(){ int N,i,total,t,temp;int x[100005];int w[21]; while(scanf("%d",&N)!=EOF){ total=0; memset(x,0,sizeof(x)); for(i=0;i<N;i++){ scanf("%d",&w[i]); total+=w[i]; } t=total/2; for(i=0;i<N;i++){ for(int j=t;j>=w[i];j--){ temp=x[j-w[i]]+w[i]; if(x[j]<temp) x[j]=temp; } } printf("%d\n",total-2*x[total/2]); } return 0; }
相关文章推荐
- nyoj 325 zb的生日(01 背包)
- nyoj 325 zb的生日 【01-背包】
- NYOJ 325 zb的生日 【0 1 背包】
- nyoj 325 zb的生日【0-1背包】
- NYOJ--325--深度优先搜索--zb的生日
- nyoj325 zb的生日(DFS)
- NYOJ325 zb的生日(深搜DFS)
- nyoj 325 zb的生日
- nyoj 325 zb的生日【01背包||dfs】
- nyoj 325 zb的生日 & nyoj 456 邮票分你一半
- nyoj-325 zb的生日
- zb的生日(NYOJ 325)
- NYOJ 325 zb的生日
- NYOJ 325 zb的生日(搜索解平分问题)
- NYOJ325 zb的生日(DFS)
- nyoj 325 zb的生日
- NYOJ 325 zb的生日 && NYOJ 456 邮票分你一半
- 【DFS】NYOJ-325-zb的生日
- NYOJ_325_zb的生日
- NYOJ题目325-zb的生日