HDU 1518 经典DFS
来源:互联网 发布:独战乾坤伙伴进阶数据 编辑:程序博客网 时间:2024/05/21 18:49
从大到小排序可以减少耗时,
从小到大会增加耗时;
注意回溯 和 剪枝
/* *HDU 1518 *fuqiang11 *DFS *2013/7/28*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 20+3int a[maxn];bool visit[maxn];int N,M,eva;int cmp(int x, int y){ return x > y;}int DFS(int st,int sum, int num){ if(num == 4) { return 1; } for(int i = st; i <= M; i++) { if(!visit[i]) { if(sum + a[i] == eva) { visit[i] = true; if(DFS(1,0,num+1)) //搜索到一条边,继续搜(从起点开始搜索) return 1; visit[i] = false; } else if(sum + a[i] < eva) { visit[i] = true; if(DFS(i+1,sum+a[i],num)) return 1; visit[i] = false; } } } return 0;}int main(){#ifndef ONLINE_JUDGE freopen("in","r",stdin);#endif cin>>N; while(N--) { cin>>M; int sum = 0,MAX = 0; for(int i = 1; i <= M; i++) { cin>>a[i]; sum += a[i];// MAX = max(MAX,a[i]); } eva = sum / 4; if(sum % 4 != 0 || M < 4) { puts("no"); continue; } memset(visit,false,sizeof(visit)); sort(a+1,a+M+1,cmp); if(!DFS(1,0,0)) puts("no"); else puts("yes"); }}
- HDU 1518 经典DFS
- hdu 1241 经典DFS
- HDU 1241 DFS经典
- hdu 2553 N皇后问题 (经典DFS)
- hdu 1455 Sticks (dfs 经典剪枝)
- hdu 1455 Sticks(经典DFS)
- HDU-1455 Sticks 经典dfs剪枝
- hdu 1445 sticks (经典dfs+剪枝)
- HDU 1045--Fire Net【DFS 经典】
- hdu 1241 Oil Deposits(经典dfs)
- hdu 1175 连连看 经典dfs
- hdu 2611 dfs+经典判重cut
- HDOJ/HDU 1241 Oil Deposits(经典DFS)
- hdu 1016 素数环 经典dfs
- hdu 2553 N皇后问题 经典dfs
- hdu 蜘蛛牌(经典DFS)
- HDU 1518 木棍凑方阵 DFS经典题 很有代表性的DFS题型 初学者的视角详细注释
- dfs hdu 1518 square
- [LeetCode] Merge k Sorted Lists
- 黑马程序员_多线程技术_(线程的创建 Thread和Runnable、死锁、线程间通信、join、yield)
- Android 开发环境搭建
- SQL合并
- 经济学并不高深 告诉你13个趣味经济指数
- HDU 1518 经典DFS
- 几个不错的IOS DEMO
- js 工具方法
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 解决方法
- linux之open函数解析
- YARN-02-YARN的框架
- 学习笔记——shell中的引号和括号使用的总结
- BugFree安装
- WaitForMultipleObjects的疑惑