HDU1518 dfs+剪枝
来源:互联网 发布:可视通信网络 编辑:程序博客网 时间:2024/05/14 04:49
#include <stdio.h>#include <algorithm>#include <string.h>int n,a[25],e;bool b[25];bool dfs(int curLen,int cure,int curStick){if(cure==4) return 1;if(curLen==e)return dfs(0,cure+1,0);for(int i=curStick;i<n;++i)//之前的已判断过,从curStick开始{if(i&&a[i]==a[i-1]&&!b[i-1]) continue;//当前长度和前一个一样且前一个不使用,当前也不使用if(b[i]) continue;if(curLen+a[i]>e) break;b[i]=1;if(dfs(curLen+a[i],cure,i))return true;b[i]=0;if(!curLen) break;//一条边的第一个没有匹配,则整个匹配失败}return false;}int main(){int T;scanf(" %d",&T);while(T--){e=0;memset(b,0,sizeof(b));scanf(" %d",&n);for(int i=0;i<n;++i){scanf(" %d",a+i);e+=a[i];}std::sort(a,a+n);if(e%4!=0||a[n-1]>e){printf("no\n");continue;}e/=4;if(dfs(0,0,0))printf("yes\n");elseprintf("no\n");}return 0;}
0 0
- hdu1518(DFS+剪枝 Square )
- HDU1518 dfs+剪枝
- hdu1518 Square | ZOJ1909 | POJ2362 (dfs + 剪枝)
- DFS:HDU1518-Square(剪枝较多的DFS)
- ZOJ1909 POJ2362 HDU1518 Square,很经典的DFS+剪枝!
- HDU1518 & POJ2362 & ZOJ1909 Square(DFS,剪枝是关键呀)
- HDU1518 DFS
- [DFS]HDU1518
- HDU1518 Square 【剪枝】
- HDU1518(深搜+剪枝)
- hdu1518 dfs,回溯
- HDU1518:Square(DFS)
- HDU1518:Square(DFS)
- HDU1518 Square (DFS)
- hdu1518 Square--DFS
- HDU1518 DFS Square
- HDU1518:Square(DFS)
- HDU1518:Square(DFS)
- 深入理解Java内存模型(一)——基础
- 2个div并排居中
- java 保留两位小数
- AI使用点滴(Adobe Illustrator)
- ansible常用命令
- HDU1518 dfs+剪枝
- 图解HTTPS 通信
- 时序图在线工具网站
- Fitnesse使用系列五
- 牛腩JavaScript总结
- C/C++捕获段错误,打印出错的具体位置(精确到哪一行
- Cocos2Dx学习笔记一Hello World执行流程
- 新游网络陈伟:Testin云测手游测试技术与服务一直遥遥领先
- C#创建ActiveX