正方形;

来源:互联网 发布:matlab 稀疏矩阵求逆 编辑:程序博客网 时间:2024/04/25 10:22


import java.util.Scanner;
public class SqureForm {
 public static int[] data;
 public static String[] res=new String[100];
 public static int respc=0;
 
 public static int[] visit;
 public static int bianchang;
 public static int flag;
 public static int geshu;                                                                                        
 /*public static boolean isFind(int b[],int bianchang,int geshu){
  int biansum=0;
  int biancount=0;
  for(int i=0;i<geshu;i++){
   biansum+=b[i];
   if(biansum==bianchang) {
    biansum=0;
    biancount++;
   }
   if(biancount==3) return true;;
  }
  
  return false; 
 }*/
 public static void dFS(int tempsum,int sange,int step){
  if(flag==1)  return;
  if(tempsum==bianchang) {
   dFS(0,sange+1,0);
   if(flag==1)  return;
  }
  
  if(sange==3){
    flag=1;
    res[respc++]="yes";
    return;
  }
  
  for(int i=step;i<geshu;i++){
   int tempand=tempsum+data[i];
   if(visit[i]==0&&tempand<=bianchang){
    visit[i]=1;
    dFS(tempand,sange,step+1);
    visit[i]=0;
   }
  }
 }
    public static void main(String[] args){
     Scanner sc=new Scanner(System.in);
     int testnum=sc.nextInt();
     int iunum=testnum;
     while(testnum-->0){
      flag=0;
      
      geshu=sc.nextInt();
      data=new int[geshu];
      
      visit=new int[geshu];
      int sum=0;
      int max=0;
      for(int i=0;i<geshu;i++){
       data[i]=sc.nextInt();
       sum+=data[i];
       if(max<data[i]) max=data[i];
      }
      if(sum%4!=0){
       res[respc++]="no";
       continue;
      }
      bianchang=sum/4;
      if(max>bianchang) {
       res[respc++]="no";
       continue;
      }
      
      for(int i=0;i<geshu-1;i++){
       int maxi=data[i];
       int maxindex=i;
       for(int j=i+1;j<geshu;j++){
        if(maxi<data[j]){
         maxi=data[j];
         maxindex=j;
        }
       }
       data[maxindex]=data[i];
       data[i]=maxi;
      }
      
      
      dFS(0,0,0); 
      if(flag==0)  res[respc++]="no";
      }
      for(int i=0;i<iunum;i++){
      System.out.println(res[i]);
      }
     
   }
}
0 0
原创粉丝点击