HDU 1518 Square
来源:互联网 发布:乐视电视转换网络电视 编辑:程序博客网 时间:2024/06/05 13:36
大意:给出N跟木棍,问是否能用这些木棍拼出一个正方形。
做法:DFS,DFS前,先判断总长度sum是否整除4,不整除直接NO。整除进行DFS判断。边长为sum/4.
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int a[22],flag[22],sum,t;bool DFS(int l1,int l2,int count1)//l1是一条边的边长,l2是这次可以选的棍子的起始编号,count是拼好了的边的个数。{ if(l1 == sum)//拼好一条边,从新开始拼第二条。 { l1 = 0; l2 = 0; count1++; if(count1 == 4)//如果拼好4条边,就返回true。 return true; } for(int i = l2 ; i < t ; i++) { if(!flag[i]) { flag[i] = true; if(l1+a[i]<=sum&&DFS(l1+a[i],i+1,count1)) return true; flag[i] = false; } } return false;}int main(){ int n; scanf("%d",&n); while(n--) { sum = 0; bool flag1 = false; memset(flag,false,sizeof(flag)); scanf("%d",&t); for(int i = 0 ; i < t ; i ++){ scanf("%d",&a[i]); sum += a[i]; } if(sum%4==0) { sum /= 4; flag1 = DFS(0,0,0); } if(flag1) printf("yes\n"); else printf("no\n"); } return 0;}
0 0
- dfs hdu 1518 square
- hdu 1518 Square (DFS)
- hdu 1518 Square
- HDU 1518 Square
- Hdu 1518 - Square
- HDU 1518 - Square
- HDU 1518 Square
- HDU 1518 Square
- hdu 1518 Square
- hdu 1518 square
- hdu 1518 Square(dfs)
- HDU 1518 Square
- Square hdu 1518
- hdu 1518 Square
- 【DFS】hdu 1518 Square
- HDU-1518 Square(DFS)
- hdu-1518-Square
- hdu-1518-Square
- Unity3D脚本中的Awake()和Start()的本质区别
- [Eclipse] 编码方式配置
- CSS Hack整理
- leetcode:Binary Tree Preorder Traversal菜鸟解法
- 新blog地址: http://hengyunabc.github.io/
- HDU 1518 Square
- [Leetcode] Generate Parentheses
- centos6.5下安装tomcat
- 即插即用的PC红外遥控接收器
- C语言qsort()函数
- Android 网络通信基类的实现
- string类c_str、data与\0使用
- ajax异步上传文件/图片
- POJ 1862 - Stripies(贪心)