| ||||||||||
| 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:0huzi0 at 2009-04-16 22:53:04 > #include<iostream>
> using namespace std;
> int m,stick[30],count,used[30];
> int cmp(const void *a,const void *b)
> {
> return *(int*)a<*(int*)b?1:-1;
> }
> bool soval(int s,int side)
> {
> if(side==0)
> {
> count++;
> return true;
> }
> for(int i=s;i<m;i++)
> {
> if(used[i] || side<stick[i])
> continue;
> if(soval(i+1,side-stick[i]))
> {
> used[i]=true;
> return true;
> }
> }
> return false;
> }
> int main()
> {
> int n,i,all,side;
> scanf("%d",&n);
> while(n--)
> {
> scanf("%d",&m);
> all=0;
> count=0;
> memset(used,false,sizeof(used));
> for(i=0;i<m;i++)
> {
> scanf("%d",&stick[i]);
> all+=stick[i];
> }
> side=all/4;
> if(side*4==all)
> {
> qsort(stick,m,sizeof(stick[0]),cmp);
> if(stick[0]>side)
> {
> printf("no\n");
> }
> else
> {
> while(soval(0,side));
> if(count==4)
> {
> printf("yes\n");
> }
> else
> {
> printf("no\n");
> }
> }
> }
> else
> {
> printf("no\n");
> }
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator