⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zp1909_p.cpp

📁 一个acm题目系统会自动删除debug和release目录
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <math.h>

int i,j,k,m,n,N,sum,side,tot;
int s[30];
char d[32*1024*1024];

int doit(int n, int sum, int mask) {
   int i,j,k;
   if (d[mask]) return 0;
   if (sum > side) return 0;
   if (sum == side) sum = 0;
   if (n == m && !sum) return 1;
   d[mask] = 1;
   for (i=0;i<m;i++) {
      if (mask & (1<<i)) continue; // already used
      if (doit(n+1,sum+s[i],mask | (1<<i))) {
         tot += s[i];
         return 1;
      }
   }
   return 0;
}
   

main(){
   scanf("%d",&N);
   while(N--){
      scanf("%d",&m);
      for (i=0;i<m;i++) scanf("%d",&s[i]);
      for (i=sum=0;i<m;i++) sum += s[i];
      side = sum/4;
      if (side * 4 != sum) {
         printf("no\n");
         continue;
      }
      memset(d, 0, 1<<m);

      tot = 0;
      if (doit(0,0,0)) printf("yes\n");
      else printf("no\n");
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -