hdu 1518——Square

来源:互联网 发布:在哪里购买淘宝店铺 编辑:程序博客网 时间:2024/06/15 10:50

深搜

#include<cstdio>#include<iostream>#include<cstring>using namespace std;int num[40];int s;int vis[40];int flag;int n;bool dfs(int x,int k,int sum)//木棍序号 已完成变数 当前木棍长度 {    int i;    if(k==3)        return 1;    for(i=x;i<n;i++)    {        if(vis[i]||sum+num[i]>s)            continue;        if(sum+num[i]==s)        {            vis[i]=1;            if(dfs(0,k+1,0))                return 1;            vis[i]=0;        }        else        {            vis[i]=1;            if(dfs(i,k,sum+num[i]))                return 1;            vis[i]=0;        }    }    return 0;    }int main(){    int t;    int i;    cin>>t;    while(t--)    {        s=0;        cin>>n;        for(i=0;i<n;i++)        {            cin>>num[i];            s+=num[i];        }                if(s%4!=0)        {            cout<<"no"<<endl;        }        else        {            s/=4;            memset(vis,0,sizeof(vis));            if(s<num[0])            {                cout<<"no"<<endl;            }            else            {                                                if(dfs(0,0,0))                    cout<<"yes"<<endl;                else                    cout<<"no"<<endl;            }        }        }}


原创粉丝点击