dfs+剪枝。
AC代码例如以下:
///dfs+剪枝  62MS 300K#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;int n,m;
int a[50];
int vis[50];bool cmp(int a,int b)
{return a>b;
}int dfs(int v,int cur,int bg)
{if(cur==4)return 1;int i;for(i=bg;i<n;i++){int flag=0;if(!vis[i]&&a[i]+v==m){flag=1;vis[i]=1;if(dfs(0,cur+1,0))return 1;vis[i]=0;return 0;}if(!vis[i]&&a[i]+v<m){flag=1;vis[i]=1;if(dfs(a[i]+v,cur,i+1))return 1;vis[i]=0;if(v==0)return 0;}while(flag&&i+1<n&&a[i+1]==a[i])i++;}return 0;
}int main()
{int t;int i;scanf("%d",&t);while(t--){int sum=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);sum+=a[i];}sort(a,a+n,cmp);if(sum%4!=0||a[0]>sum/4){printf("no\n");continue;}m=sum/4;memset(vis,0,sizeof vis);if(dfs(0,0,0))printf("yes\n");else printf("no\n");}return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/hrhguanli/p/4816832.html

HDU 1518 Square相关推荐

  1. 【HDU - 1518】Square (经典的dfs + 剪枝)

    题干: Given a set of sticks of various lengths, is it possible to join them end-to-end to form a squar ...

  2. hdu 5079 Square

    http://acm.hdu.edu.cn/showproblem.php?pid=5079 题意: n*n网格,每个格子可以涂黑色或白色,有的格子必须涂黑色 问最大白色正方形边长分别为0,1,2,- ...

  3. hdu 1398 Square Coins/hdu 1028 Ignatius and the Princess III

    两道母函数的模板题: http://acm.hdu.edu.cn/showproblem.php?pid=1398 View Code #include<iostream>#include ...

  4. HDU 1398 Square Coins

    母函数简单应用 题目: Square Coins Problem Description People in Silverland use square coins. Not only they ha ...

  5. HDU 1398 Square Coins

    题目大意:有面值分别为.1,4,9,.......17^2的硬币无数多个.问你组成面值为n的钱的方法数. 最简单的母函数模板题: #include <cstdio> #include &l ...

  6. hdu 5903 Square Distance

    这题题解dp不懂 因为不知道它怎么记录dp的答案的 字符串那么长 我是贪心过得,当时还被四个人hack,都没成功,hhhhh 大意就是优先从头取字典序小的字母,担也要让后面不管怎么取都合法 #incl ...

  7. hdu 1518 dfs+剪枝

    题目大意: 几根棒子能否组成一个正方形 Sample Input 3           //测试组数 4 1 1 1 1   //棒子数目以及每根棒子的长度 5 10 20 30 40 50 8 1 ...

  8. HDUOJ 1518 Square(深搜)

    solution:经典的深搜思路: 先判断行不通的情况: 1.棍子总长不是4的倍数必然不能组成正方形 2.最长棍的长度的四倍大于棍子总长必然不能组成正方形 再一条边一条边地进行搜索 #include ...

  9. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

最新文章

  1. 简单实现ReplaceAll(转)
  2. c++通讯录控制台小程序
  3. LeetCode-剑指 Offer 58 - I. 翻转单词顺序
  4. PX4的workqueue
  5. Hadoop常见问题 | Hadoop能干什么?
  6. java自动获取ip_java自动获取电脑ip和MAC地址
  7. android的应用组件,跟我学android-Android应用基本组件介绍(五)
  8. 腾讯、阿里、百度...大厂招聘火热中,测试员如何才能入大厂?
  9. RT-thread内核之对象管理系统
  10. 部队计算机考试题,2020军队文职计算机知识:计算机考试练习题(1)
  11. 蓝桥杯 ADV-85 算法提高 算术运算
  12. python机器学习库sklearn——集成方法(Bagging、Boosting、随机森林RF、AdaBoost、GBDT)
  13. 手机软件APP下载类网站Pbootcms模板 游戏软件应用网站源码 模板自适应手机端
  14. JAVA一键获取文件名并对比Excel名单,看看谁没有交作业
  15. php nlpir,NLPIR简介及使用配置
  16. windows域用户切换本地用户
  17. AtCoder Beginner Contest 167 Solution
  18. 目标检测网络的知识蒸馏
  19. ROS创建Web代理(Web proxy)
  20. 10个H5页面制作工具

热门文章

  1. php 中国标准时间,linux 系统时间与硬件时间与中国标准时间
  2. LOJ #516. 「LibreOJ β Round #2」DP 一般看规律
  3. QPushButton 点击信号分析
  4. python运行py文件参数错误_Pycharm运行加载文本出现错误的解决方法
  5. 数据挖掘在企业中应用的四种途径
  6. 人工智能、机器学习、数据挖掘著名会议
  7. python中的utils模块_使用Python的package机制如何简化utils包设计详解
  8. java 单引号的字符串类型_Java程序以字符串形式显示双引号和单引号
  9. mysql 怎么实现组内排名_MySQL 实现排名(分组排名)
  10. H5js的一些好玩的东西