POJ 2362 Square DFS
来源:互联网 发布:广州趣丸网络 收购 编辑:程序博客网 时间:2024/05/22 02:11
传送门:http://poj.org/problem?id=2362
题目大意:
给一些不同长度的棍棒,问是否可能组成正方形。
学习了写得很好的dfs
赶紧去玩博饼了。。。。。晚上三个地方有约。。。。。T T分身乏术啊。。。。
#include<cstdio>#include<algorithm>using namespace std;const int MAXN=22;int side[MAXN],target,n;bool vis[MAXN];bool dfs(int num,int cur_len,int begin){if(num==3)//如果3条可以构建完成,那么第4条必然可以return true;for(int i=begin;i<n;i++){if(vis[i]==true)continue;vis[i]=true;if(side[i]+ cur_len< target){if(dfs(num,side[i]+cur_len,i))//继续构建return true;}if(side[i]+ cur_len== target){if(dfs(num+1,0,0))//新的一条边return true;}vis[i]=false;}return false;}int main(){int T;scanf("%d",&T);while(T--){int sum=0;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&side[i]);sum+=side[i];vis[i]=false;}if(sum%4!=0||n<4)//和不被4整除,意味着不能组成4条边。{printf("no\n");continue;}sort(side,side+n);target=sum/4;if(target < side[0])//最小的一遍比要组成的边长。。。。。{printf("no\n");continue;}if(dfs(0,0,0))printf("yes\n");elseprintf("no\n");}}
- poj 2362Square(DFS)
- POJ 2362 Square dfs
- POJ 2362 Square DFS
- dfs Square poj 2362
- DFS POJ 2362 Square
- POJ 2362 Square [DFS]
- 【POJ】2362 Square(DFS)
- TOJ 1398 POJ 2362 Square DFS
- poj 2362 || zoj 1909 Square (DFS+剪枝)
- POJ 2362 HDOJ 1518 Square DFS剪枝
- POJ 2362 Square(DFS回溯构造)
- POJ 2362 Square 经典DFS回溯
- hdu 1518||poj 2362 Square(dfs)
- POJ 2362 Square (DFS +剪枝)
- POJ 2362 && HDU 1518 Square(dfs)
- poj 2362 Square(dfs, 剪枝)
- POJ 2362 square(DFS范例题)
- Square DFS poj&hoj
- string& str(未初始化) = str1和str(已初始化过) = str1的区别和联系
- 移动互联网入口
- TimingFramework笔记
- MIME笔记
- 保养肾精的三种方法
- POJ 2362 Square DFS
- codeforces 280C
- tar的用法
- LeetCode | Longest Common Prefix
- 黑马程序员—关于dos配置临时jdk环境变量
- Oracle Database 11g SQL 开发指南学习笔记:使用SQL*Plus
- kali下metasploit链接postgresql数据库
- 算法真的是个不能跑到黑的路
- 最长公共子序列求解:递归与动态规划方法