P2383 狗哥玩木棒 约翰玩木棒

P2383 狗哥玩木棒 约翰玩木棒

题目背景
狗哥又趁着语文课干些无聊的事了…

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

输入格式:

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

输出格式:

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

输入输出样例
输入样例:
3
4 1 1 1 1
5 10 20 30 40 50
8 1 7 2 6 4 4 3 5
输出样例:
yes
no
yes

//【参考代码】
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int N = 1000;
int n, m;
int s[N];
int eval;//边长  平均数
int flag;//是否能组成正方形bool cmp(int a, int b)
{return a>b;
}void dfs(int k, int a, int b, int c, int d)
{if(a>eval||b>eval||c>eval||d>eval){return;//其中一条边大于平均数 长木棒不能变短}if(a==eval&&b==eval&&c==eval&&d==eval){flag = 1;//刚好正方形}if(flag==1) return;dfs(k+1,a+s[k],b,c,d);dfs(k+1,a,b+s[k],c,d);dfs(k+1,a,b,c+s[k],d);dfs(k+1,a,b,c,d+s[k]);
}int main()
{scanf("%d",&n);while(n--){int all = 0;//求所有的木头之和memset(s,0,sizeof(s));scanf("%d",&m);for(int i=1; i<=m; i++){scanf("%d",&s[i]);all+=s[i];}//正方形的4条边是相等的  不整除4不可能是正方形if(all%4!=0){puts("No");continue;}eval = all/4;//正方形的每一条边sort(s+1,s+m+1,cmp);//从大到小进行排序dfs(1,0,0,0,0);if(flag==1)  puts("yes");else puts("no");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言【paleobioDB】——pbdb_collections_geo():从PBDB获取根据地理位置信息筛选的采集号的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_collections_geo (...) Arguments 参数【…

uniapp中u-switch子组件点击触发到父组件(阻止事件冒泡)

解决方法&#xff1a;在u-switch 外面包和view标签&#xff0c;并使用tap.stop.prevent 可以阻止事件冒泡 .stop 阻止事件继续传播到父元素&#xff0c;prevent阻止事件默认行为 <view tap.stop.prevent><u-switch v-model"val_switch" change"chang…

vue中使用js-doc

安装依赖 安装vue-template-compiler npm install ​vue-template-compiler​npm install ​vue-template-compiler​ 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容&#xff1a; {"tags": {"all…

在Linux中创建文件的多种方法

目录 前言1 使用重定向符号 ">"2 使用文本编辑器 vi/vim3 使用 nano4 使用 echo5 使用 touch6 使用 printf7 使用 head8 使用 cat9 使用 tail10 使用 truncate结语 前言 在Linux系统中&#xff0c;文件的创建是日常操作中不可避免的一部分。无论是创建空文件、编…

解决MPICH的GPU初始化失败:一次深入探索

今天来分享“MPICH&#xff1a;MPII_Init_thread(222): gpu_init failed”这个问题的解决方式 文章目录 前言问题原因解决方案 前言 如果在安装MPICH的时候没有注意要一些选项&#xff0c;那么当使用mpicxx mpi_send.cpp -o send && mpirun -n 2 ./send进行编译输出的…

图片特效/增强GUI程序

程序下载地址&#xff1a;mendianyu/pictureConvert: 图片特效/增强GUI程序&#xff0c;借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 (github.com) 图片特效/增强GUI程序 借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 程序介绍 运行Ima…

LIS系统:样本采集、检验、分析、查看报告

检验科LIS系统是实验室信息管理系统&#xff0c;主要用于实验室检验工作流程管理、病人信息管理、检验结果查询、统计和报表打印等功能。它采用智能辅助功能&#xff0c;自动接收检验数据、打印检验报告&#xff0c;并保存检验信息的工具。同时&#xff0c;可根据实验室需要实现…

生物信息学之序列比对

从事生物信息学方面的研究利用了有生产力的CS方面的技术来研究生物领域的内容。 当研究基因和蛋白质时&#xff0c;常常涉及到专有名词——序列比对。 何为序列比对呢&#xff1f; 蛋白质和基因相关性分析可以通过基因比对来完成&#xff0c;当完成对多个物种的基因组测序后…

opencv(C++)基础用法

文章目录 前言一、opencv (C)图片基本操作1.1 读取图片并显示1.2 颜色转换1.3 图像filtering1.4 形状调整1.5 绘制 二、读取视频文件并显示三、RTSP 视频流四. 人脸检测总结 前言 学习笔记 一、opencv (C)图片基本操作 1.1 读取图片并显示 #include "opencv2/opencv.hp…

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】 1.MySQL和MybatisPlus简介2.maven依赖3.配置1.在application.yaml配置中加入mysql配置2.新增Mybatis-Plus配置类 4.参考文章 1.MySQL和MybatisPlus简介 MySQL是一种开源的关系型数据库管理系统&#xff0c;被广泛应用…

前端“数据代理”

讲数据代理之前我们先闲聊一下“同源数据”与“数据认可”。世间的一切在形成人文语言泛指的事物时&#xff0c;我们都会为其"下定义"&#xff0c;下定义之前我们都会用形形色色的条件对其限制与说明。通过这种下定义的方式我们得到了不同事物在语言上的定义&#xf…

【spring源码分析】@ComponentScan的使用以及分析

ComponentScan ComponentScan 一、基本信息二、注解描述三、注解源码四、主要功能五、最佳实践六、时序图七、源码分析八、注意事项九、总结 最佳实践总结源码分析总结 一、基本信息 转载自github&#xff0c;在此作为个人备份 二、注解描述 ComponentScan 注解&#xf…

JavaScript-4

事件监听 什么是事件&#xff1a; 在编程时系统内发生的动作或者发生的事情。比如&#xff1a;用户在网页上单击一个按钮什么是事件监听&#xff1a; 让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函数做出响应 也称为"绑定事件或者注…

多种采购方式下,数智化招标采购系统建设解决方案

广发证券成立于1991年&#xff0c;是国内首批综合类证券公司&#xff0c;先后于2010年和2015年在深圳证券交易所及香港联合交易所主板上市。 多年来&#xff0c;广发证券在竞争激烈、复杂多变的行业环境中努力开拓、锐意进取&#xff0c;以卓越的经营业绩、持续完善的全面风险…

Python——猜猜心里的数字(1)

首先呢&#xff0c;我们自定义一个数字&#xff0c;然后让对方猜一猜是否能猜中&#xff0c;接下来我们以10为例&#xff0c;给对方三次机会。 num10 if int(input("请猜一个数字:"))num:print("恭喜第一次就猜对了") elif int(input("猜错了&#x…

每日一题——LeetCode1128.等价多米诺骨牌对的数量

先尝试暴力解法&#xff1a; var numEquivDominoPairs function(dominoes) {var count0for(let i0;i<dominoes.length-1;i){for(let ji1;j<dominoes.length;j){if((dominoes[i][0]dominoes[j][0] && dominoes[i][1]dominoes[j][1]) || (dominoes[i][0]dominoes…

MySQL 为什么 InnoDB 是默认引擎

MySQL 为什么 InnoDB 是默认引擎&#xff1f; 聚集索引是指数据库表行中数据的物理顺序与键值的逻辑&#xff08;索引&#xff09;顺序相同。一个表只能有一个聚簇索引&#xff0c;因为一个表的物理顺序只有一种情况&#xff0c;所以&#xff0c;对应的聚簇索引只能有一个。聚簇…

Mac下载Navicat premium提示文件损坏的解决方案

引用&#xff1a;https://blog.csdn.net/weixin_44898291/article/details/120879508 sudo xattr -r -d com.apple.quarantine

js:使用canvas画一个半圆

背景 需求需要画一个半圆&#xff0c;或者多半圆&#xff0c;其实一下子就能想到 canvas 中的圆弧&#xff0c;核心使用 context.arc context.arc(x,y,r,sAngle,eAngle,counterclockwise)接下来我们看看示例 例一 <!DOCTYPE html> <html lang"en"> &…

【野火i.MX6NULL开发板】GCC 和 Hello World

0、前言 参考资料&#xff1a; 《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第23章 1、教程