• HDU 1518 Square


    解题思路:sum%4!=0    , max<sum/4


    #include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>usingnamespace std;int a[100];bool vis[100],flag;int m,ave;bool dfs(int ans,int sum,int cnt){
        if(sum==ave)returntrue;
        for(int i=cnt;i<m;i++){
          if(a[i]==a[i-1]&&!vis[i-1])continue;
          if(!vis[i]&&a[i]<=ans){//shit !!!  <  
            vis[i]=true;
            if(a[i]==ans){
              if(dfs(ave,sum-a[i],0)) 
              returntrue;
            }
            elseif(dfs(ans-a[i],sum-a[i],i))
              returntrue;
            vis[i]=false;
            if(ans==ave)returnfalse;
            }
          }
          returnfalse;}int main(){
        int n,sum;
        scanf("%d",&n);
        while(n--){
          scanf("%d",&m);
          sum=0;
          for(int i=0;i<m;i++){
            scanf("%d",&a[i]);
            sum+=a[i];
          }
          sort(a,a+m);
          flag=false;
          ave=sum/4;
          if(a[m-1]>ave||sum%4!=0){
            cout<<"no"<<endl;
            continue;
          }
          else{
            memset(vis,false,sizeof(vis));
            if(dfs(ave,sum,0))
            flag=true;
          }
          if(flag) cout<<"yes"<<endl;
          else cout<<"no"<<endl;
        }
        return0;}
  • 相关阅读:
    大数据基础1
    java之MySQL的使用
    java反射
    java多线程
    java异常
    指针综合
    指向函数的指针变量做函数的参数
    指向函数的指针
    字符串指针法赋值
    字符串冒泡排序和折半查找
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3478919.html
Copyright © 2020-2023  润新知