hdu1518 bjfuoj1042 zoj1909 poj2362 经典的搜索加剪枝
bjfuoj的测试数据最水,用很简单的方法一下就过了,又调了好长时间,才过掉其它OJ上的这道题目~
/* * hdu1518/win.cpp * Created on: 2011-11-8 * Author : ben*/#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map>#include <stack>#include <string>#include <vector>#include <deque>#include <list>#include <functional>#include <numeric>#include <cctype>using namespace std;const int MAXN = 25;int lens[MAXN];bool visited[MAXN];int N, ave, cur_tol_len, totallen; inline bool cmp(const int &a, const int &b) {return a > b;} bool myfind(int step, int num) {if (num > 3) {return true; }if (step >= N) {return false; }if (!visited[step] && (lens[step] + cur_tol_len) <= ave * num) { visited[step] = true; cur_tol_len += lens[step];if(cur_tol_len == ave * num) {if(myfind(0, num + 1)) {return true; } }else if (myfind(step + 1, num)) {return true; } visited[step] = false; cur_tol_len -= lens[step]; }return myfind(step + 1, num);} bool judge() {if (N < 4 || totallen % 4 != 0) {return false; } ave = totallen / 4;for (int i = 0; i < N; i++) {if (lens[i] > ave) {return false; } } sort(lens, lens + N, cmp); memset(visited, false, sizeof(visited)); cur_tol_len = 0;return myfind(0, 1);} int main() {#ifndef ONLINE_JUDGE freopen("data.in", "r", stdin);#endifint T; scanf("%d", &T);while (T--) { scanf("%d", &N); totallen = 0;for (int i = 0; i < N; i++) { scanf("%d", &lens[i]); totallen += lens[i]; }if (judge()) { puts("yes"); } else { puts("no"); } }return 0;}
转载于:https://www.cnblogs.com/moonbay/archive/2011/11/08/2241638.html
hdu1518 bjfuoj1042 zoj1909 poj2362 经典的搜索加剪枝相关推荐
- 基于Android官方AsyncListUtil优化经典ListView分页加载机制(二)
基于Android官方AsyncListUtil优化经典ListView分页加载机制(二) 我写的附录文章1,介绍了如何使用Android官方的分页加载框架AsyncListUtil优化改进常见的Re ...
- chosen.jquery.js 、chosen-select 源码修改控制 chosen:updated 方法动态更新下拉框选项不更新搜索框值 ,chosen 实现远程搜索加载下拉选项
chosen.jquery.js .chosen-select 源码修改控制 chosen:updated 方法动态更新下拉框选项不更新搜索框值,chosen 实现远程搜索加载下拉选项 chosen. ...
- ThinkPad X1c【第一次当拆客】示范如何给经典本R400加内存
自从去年买了R400以来,还没尝试过自己打开过内部, 终于快要换本了,所以今天特意胆粗粗尝试一下给R400加内存(内存本来买机的时候就让JS帮忙加上去的). 1.根据别人的经验,第一步当然是先把电源. ...
- 知识点-极大极小搜索+alpha_beta剪枝
知识点-极大极小搜索+alpha_beta剪枝 解决问题 博弈类游戏 概要 其实就是用深度搜索搜索博弈的策略,博弈中两个人轮流进行游戏,在算法里转化为在搜索的不同深度下选取不同的搜索策略,一般 ...
- 五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(一)引言和界面设计
源代码 GitHub上:Github livingsu/Gobang-ai:极大极小搜索和α-β剪枝 引言 alphaGo击败围棋冠军李世石的新闻让我对棋类博弈产生了浓厚的兴趣,无奈本人不会围棋,但算 ...
- DFS 如何避免重复母题 Leetcode 077组合(人为规定选取顺序:本题为只能从前往后选,好马不吃回头草)(类似题:Leetcode047全排列(可能含重复元素)-回溯法加剪枝)
类似题 Leetcode047全排列(可能含重复元素)-----------回溯法加剪枝 https://blog.csdn.net/qq_52934831/article/details/11957 ...
- (只此一篇便绝b能懂的)五子棋AI算法原理,博弈树、极大极小搜索、αβ剪枝
我在最近撰写五子棋AI程序设计报告时,翻阅了很多的资料博客,但却发现大佬们的博客,没有一篇是能让我只看它就能理解全部的AI算法.在看了众多博客后,我终于对博弈树.极大极小搜索.αβ剪枝恍然大悟,其实这 ...
- 刷相关搜索软件_【亚马逊排名算法】搜索加购为什么能提升关键词排名?
有搜索框的地方就有排名,有排名就要研究其排名机制.笼统的说,搜索的目的就是根据用户输入的关键词展现出符合用户需求的结果,也就是说优先展示与用户搜索词相关的产品或结果.这句话很重要,任何搜索都是这个原理 ...
- Windows 10搜索框一直搜索/加载的解决方法
重装了win10系统后,发现搜索框输入完内容就一直在加载,什么东西也搜索不到. 神奇的是切换到Administrator账户使用起来就没有问题.于是把自己账户权限改到最高,但问题并没有解决. 百度给了 ...
最新文章
- Tensorflow object detection API 搭建物体识别模型
- 客制化NVRAM的以太网地址
- python 删除非空文件夹
- 数据结构中单链表的存储c语言,单链表一 - 数据结构与算法教程 - C语言网
- Shell编程入门(第二版)(下)
- [深度学习-优化]梯度消失与梯度爆炸的原因以及解决方案
- Community宣言
- 颠覆网站 C/S 模式,没有服务器的网站会怎样?
- JAVA使用URLEncoder、URLDecoder编码解码
- 计算机课程设计Servlet网上订餐系统【jsp+servlet+mysql】代码讲解安装调试
- Android权限管理原理
- 最全勒索病毒解密工具
- ANSYS apdl命令流笔记15-------模态分析
- 【无标题】单分子纳米孔测序技术及其应用研究进展
- nanopore测序技术专题(四):纳米孔测序原理
- 表格控件SpreadJS助力上市企业明源云,打造更智慧的地产生态链
- 如何调节B站倍速播放
- 绝技不是一天练成 新手入库停车技巧图解
- 参加AKM DSP芯片代理培训
- python装饰器原理wraps(method)(self)_理解Python中装饰器最佳方法~
热门文章
- 适合初学者的数据结构_数据结构101:数组-初学者的直观介绍
- pwa js_如何在互联网信息亭中实现PWA和Barba.js
- jsp实现日历(二)
- 浙江大学软件学院2020年保研上机模拟练习 7-2 Distance of Triples
- Oracle中的iot_type,oracle IOT表学习
- nginx系列:nginx反向缓存代理详解
- 手动创建Spring项目 Spring framework
- Ring Tone Manager on Windows Mobile
- 如何制作一个类似Tiny Wings的游戏 Cocos2d-x 2.1.4
- Oracle 11g Release 1 (11.1) PL/SQL_多维 Collection 类型和其异常