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:感觉自己的程序好慢啊!!!In Reply To:感觉自己的程序好慢啊!!! Posted by:suda1227401034 at 2013-04-27 13:14:42 > //poj 1011 > #include<stdio.h> > #include<iostream> > #include<algorithm> > using namespace std; > > int a[70],n; > bool visit[70]; > > int cmp(int x,int y) > { > return x>y; > } > > int dfs(int len,int left,int num) > { > if(left==0&&num==0) > { > return len; > } > if(left==0) > { > left=len; > } > for(int i=0;i<n;i++) > { > if(!visit[i]) > { > if(a[i]<=left) > { > visit[i]=1; > if(dfs(len,left-a[i],num-1)) > { > return len; > } > visit[i]=0; > if(a[i]==left||left==len) > { > break; > } > for(int j=i+1;j<n;j++) > { > if(a[j]!=a[i]) > { > i=j-1; > break; > } > } > } > } > } > return 0; > } > int main() > { > > while(scanf("%d",&n)!=EOF&&n) > { > int sum=0; > //memset(a,0,sizeof(a)); > for(int i=0;i<n;i++) > { > scanf("%d",&a[i]); > sum+=a[i]; > } > sort(a,a+n,cmp); > > int k; > for(int len=a[0];len<=sum;len++) > { > if(sum%len==0) > { > memset(visit,0,sizeof(visit)); > k=dfs(len,0,n); > if(k) > { > break; > } > } > } > printf("%d\n",k); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator