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:dfs过了,C++菜鸟dfs16MS水过In Reply To:dfs过了,C++菜鸟dfs16MS水过 Posted by:201501060326 at 2016-03-27 14:54:25 > #include <iostream> > using namespace std; > int a[10]; > int sum_value,half_value; > bool flag; > void dfs(int value,int num) > { > if(flag) return; > if(value==half_value) > { > flag=true; > return; > } > for(int i=num; i>=1; i--) > { > if(a[i]) > { > if(value+i<=half_value) > { > a[i]--; > dfs(value+i,i); > if(flag) break; > } > } > } > return; > } > int main() > { > int i,count=1; > flag=false; > while(!flag) > { > sum_value=0; > for(i=1; i<=6; i++) > { > cin>>a[i]; > if(a[i]) flag=true; > } > if(!flag) break; > cout<<"Collection #"<<count++<<":"<<endl; > for(i=1; i<=6; i++) > sum_value+=i*a[i]; > flag=false; > if(!(sum_value%2)) > { > half_value=sum_value/2; > dfs(0,6); > } > if(flag) > cout<<"Can be divided."<<endl; > else > cout<<"Can't be divided."<<endl; > cout<<endl; > flag=false; > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator