URAL 1005 Stone Pile
2015-02-12 19:51
429 查看
算是用回溯法做的吧,用dum记录选择的石头重量总和,用i记录选择石头的编号,i==n时判断(1)dum是否小于sum的一半(2)sum-2*dum是否小于最小值min,i<n时,向dum中加入或者不加入改石子,分别进入下一颗。
#include<stdio.h> int dp[2000000]; int a[25]; int n,sum; int min=(1<<31-1); void zhixing(int i,int dum) { if(i==n){ int tmp=sum-dum-dum; if(tmp>=0&&tmp<min)min=tmp; return; } zhixing(i+1,dum); zhixing(i+1,dum+a[i]); } int main(void) { int i,j; scanf("%d",&n); for(i=0,sum=0;i<n;i++) { scanf("%d",&a[i]); sum+=a[i]; dp[a[i]]=1; } zhixing(0,0); printf("%d\n",min); return 0; }
相关文章推荐
- ural 1005. Stone Pile
- URAL 1005 Stone Pile
- URAL 1005 Stone Pile
- ural 1005 Stone Pile
- Ural-1005. Stone Pile(简单01背包)
- ural 1005 stone pile
- URAL 1005 Stone Pile
- ural1005 Stone Pile (枚举)
- Ural1005-Stone Pile
- URAL1005 Stone Pile
- URAL 1005 Stone Pile (DFS)
- ural 1005 Stone Pile
- URAL 1005 Stone Pile
- URAL1005 - Stone Pile - 动态规划
- Timus 1005. Stone pile
- Ural 1005 Stone Pilet 解题报告
- URAL1005 Stone Pile 01背包
- URAL1005 - Stone Pile - 深度优先搜索
- ural 1005 Stone Pile 01背包或dfs
- Ural 1005 Stone Pilet 解题报告