Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:一组比较BT的数据!In Reply To:一组比较BT的数据! Posted by:winboycool at 2007-04-22 00:07:27 我的代码16MS AC 了, 可是为什么跑不动这组数据`````` 求正解 #include<stdio.h> #include<stdlib.h> #define M 65 int stick[M]; bool mark[M]; int cmp(const void *a,const void *b) { return *(int *)b-*(int *)a; } bool f(int k,int left,int l,int n) { int i,pre,cur; if(n==1) return 1; if(left==0){ n--; left=l; } pre=0; for(i=0;i<k;i++){ if(mark[i]) continue; if(stick[i]>left) continue; if(stick[i]==pre) continue; pre=stick[i]; mark[i]=1; if(f(k,left-stick[i],l,n)) return 1; mark[i]=0; if(stick[i]==left||left==l) break; } return 0; } int main() { int n,sum,i,len; while(scanf("%d",&n),n){ sum=0; for(i=0;i<n;i++){ scanf("%d",stick+i); mark[i]=0; sum+=stick[i]; } qsort(stick,n,sizeof(int),cmp); for(i=stick[0];i<sum;i++){ if(sum%i) continue; if(f(n,i,i,sum/i)) break; } printf("%d\n",i); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator