poj 1011 Sticks
2010-07-14 16:05
351 查看
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 69843 | Accepted: 15257 |
代码:
#include<stdio.h> #include<string.h> #include<stdlib.h> int n,used[100],sticks[100]; int compare(const void *a,const void *b) { return *(int *)b-*(int *)a; }; int test(int unused,int left,int len) { int i; if(unused==0 && left==0) return 1; if(left==0) left=len; for(i=1;i<=n;i++) { if(used[i]) continue; if(sticks[i]>left) continue; used[i]=1; if(test(unused-1,left-sticks[i],len)) return 1; used[i]=0; if(sticks[i]==left || left==len) break; } return 0; } int main() { int i,max,sum; while(scanf("%d",&n)!=EOF) { if(n==0) break; max=0;sum=0; for(i=1;i<=n;i++) { used[i]=0; scanf("%d",&sticks[i]); sum+=sticks[i]; } qsort(sticks+1,n,sizeof(sticks[0]),compare); max=sticks[1]; for(i=max;i<=sum;i++) { if(sum%i!=0) continue; if(test(n,i,i)) { printf("%d\n",i); break; } } } return 0; }
相关文章推荐
- DFS(剪枝) POJ 1011 Sticks
- poj 1011 Sticks -----dfs+剪枝
- HDU 1455 POJ 1011 UVA 307 Sticks
- POJ 1011 Sticks
- POJ 1011-Sticks
- POJ 1011 Sticks
- POJ 1011 Sticks
- POJ 1011 Sticks(dfs+剪枝)
- [DFS+剪枝]POJ 1011/HDOJ 1455/HOJ 1049 Sticks
- poj 1011 Sticks
- POJ 1011-Sticks 简单搜索DFS
- POJ 1011 STICKS 搜索 剪枝
- poj 1011 Sticks
- POJ 1011 Sticks ( 深搜、剪枝)
- POJ_1011_Sticks
- [POJ][1011]Sticks
- POJ 1011 Sticks
- 【暴力搜索】[POJ 1011]Sticks
- POJ 1011 / UVA 307 Sticks
- poj(1011)——Sticks(经典的dfs+剪枝)