题目背景

狗哥又趁着语文课干些无聊的事了...

题目描述

现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢?

输入输出格式

输入格式:

输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据。 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度。

输出格式:

对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”。

输入输出样例

输入样例#1:

3
4 1 1 1 1
5 10 20 30 40 50
8 1 7 2 6 4 4 3 5

输出样例#1:

yes
no
yes

说明

狗哥快抓狂了

dfs

屠龙宝刀点击就送

#include <algorithm>
#include <cstring>
#include <cctype>
#include <cstdio>
using namespace std;
inline void Read(int &x)
{register char ch=getchar();for(x=0;!isdigit(ch);ch=getchar());for(;isdigit(ch);x=x*10+ch-'0',ch=getchar());
}
bool flag,use[21];
int n,m,a[21],sum;
void dfs(int now,int num,int z)
{if(flag) return;if(num==4&&z==m) {flag=1;return;} for(int i=1;i<=m;++i){if(!use[i]&&now+a[i]<=sum){use[i]=1;(now+a[i])%sum==0?dfs((now+a[i])%sum,num+1,z+1):dfs((now+a[i])%sum,num,z+1);use[i]=0;}}
}
int main()
{Read(n);for(;n--;){sum=0;flag=0;Read(m);for(int i=1;i<=m;++i) Read(a[i]),sum+=a[i];if(sum%4) {printf("no\n");continue;}sort(a+1,a+1+m);sum/=4;dfs(0,1,1);if(flag) printf("yes\n");else printf("no\n");}return 0;
}

转载于:https://www.cnblogs.com/ruojisun/p/7475365.html

洛谷 P2383 狗哥玩木棒相关推荐

  1. 洛谷P2380 狗哥采矿

    P2380 狗哥采矿 题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是 ...

  2. 洛谷P2380 狗哥采矿【DP】【绿】

    Date:2022.03.25 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 ye ...

  3. 洛谷[P3799 妖梦拼木棒] {暴力枚举} 奋斗的珂珂~

    洛谷[P3799 妖梦拼木棒] {暴力枚举} 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案 ...

  4. 洛谷 P3799 妖梦拼木棒【枚举/组合数学】

    题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nnn 根木棒,现在从中选 444 根,想要组成一个正三角形,问有几种选法? 答案对 109+710^9+7109+7 ...

  5. 洛谷P3797 妖梦斩木棒

    题目背景 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的n段.现在这个木棒可以看做由三种小段构成,中间的 ...

  6. 洛谷-P3799 妖梦拼木棒

    题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有 nn 根木棒,现在从中选 44 根,想要组成一个正三角形,问有几种选法? 答案对 10^9+7109+7 取模. 输入格 ...

  7. 洛谷P3799 妖梦拼木棒

    题目链接 题目背景 上道题中,妖梦斩了一地的木棒,现在她想要将木棒拼起来. 题目描述 有n根木棒,现在从中选4根,想要组成一个正三角形,问有几种选法? 输入格式: 第一行一个整数n 第二行n个整数,a ...

  8. 洛谷 P3797 妖梦斩木棒

    妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的n段.现在这个木棒可以看做由三种小段构成,中间的n-2段都 ...

  9. 洛谷 P3797 妖梦斩木棒 解题报告

    P3797 妖梦斩木棒 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的\(n\)段.现在这个木棒可以看做 ...

  10. 洛谷P4839 P哥的桶 线段树+线性基

    传送门 题意:N个操作,第K个桶放一个X,查询L到R区间的桶任意数的异或最大值. P哥时不时地会找新女朋友,并把新找的女朋友丢进某个桶里面.我们用 1 k x 来表示P哥找了一个颜值为x的女朋友,并且 ...

最新文章

  1. php imagecopy 用法,php使用imagecopymerge()函数创建半透明水印
  2. 使用R构建Xgboost模型并绘制ROC曲线
  3. 转载:JMS-ActiveMQ浅析
  4. python Tkinter学习笔记 menu控件 02
  5. leetcode算法题--有效的括号
  6. C:#define用法
  7. mysql sqlite 分页查询_php基于SQLite实现的分页功能示例
  8. java正则表达式判断手机号_正则表达式学习之简单手机号和邮箱练习
  9. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  10. 对session的理解
  11. Qt 图形特效(Graphics Effect)介绍
  12. Java LinkedList getFirst()方法与示例
  13. SQL Server修改标识列方法 如自增列的批量化修改
  14. 「leetcode」513.找树左下角的值(详解)
  15. 面试Python时,面试官最喜欢问这些技术问题
  16. Flink流处理框架总结
  17. c#程序设计实训报告心得体会_C#实训总结报告
  18. php百度蜘蛛劫持,PHP模拟百度蜘蛛,伪造IP爬行网站,附源代码
  19. 没有计算的推理和基于推理的计算 逻辑与算法之五
  20. 荣耀linux电脑开机后黑屏,开机黑屏进不了系统,教您解决电脑开机黑屏进不了系统...

热门文章

  1. 四张照片合成一张怎么弄_教你5种照片创意手工,简单好看实用
  2. C# list删除 另外list里面的元素_python学习笔记第三课:List(列表)
  3. python 日志函数参数_Python之配置日志模块logging
  4. MYSQL5.5.48编译安装
  5. 老男孩教育每日一题-2017年4月10日-find命令题目
  6. HAXM 6.0.5显示不兼容Windows
  7. 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
  8. 【转】JSch - Java实现的SFTP(文件下载详解篇)
  9. C++ 运算符重载四(自定义数组类)
  10. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL