简单搜索dfs, 简单的修剪搜索
选择最合适的语言做一个项目是非常重要的。但,熟练的掌握自己的武器,这也是非常重要的。
=====================================================================================================================
继续总结搜索类的题目,这一类的题目。眼下仅分析简单粗暴的dfs搜索,以及简单的剪枝。
參考的题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1864
http://acm.hdu.edu.cn/showproblem.php?pid=1881
对于pid=1864,最大报销额的题目。细节部分非常多,改动了非常久才正确。
核心部分,加了搜索剪枝的:
void cal(int t ,double money ,double remain)
{
if( t >= len)
{
if( money > max) max = money;//更新最大值
return ;
}
if( money + remain <max) return ; //假设剩下的钱加上现有的钱 都达不到max,那么永远都达不到max, 所以直接返回
cal(t+1, money, remain-mon[t]); //先不要这张发票
if( money + mon[t] <=q)<span style="white-space:pre"> </span> //满足条件。要这张发票
cal(t+1, money+mon[t], remain- mon[t]); }
对于pid=1881。毕业bg的题目,要想到先排序。再处理数据,有选择的处理的问题。
核心部分是朴素的搜索dfs:
void dfs(int i, int h, int time)
{
if(i >= n)
{
if( h > max) max = h;
return ;
}
dfs(i+1, h, time);
if( bg[i].l + time <= bg[i].t)
dfs(i+1, h + bg[i].h, bg[i].l + time);
}
依然上一个剪枝的版本号,也能够ac仅仅是时间变长了。也许是我剪枝的方式不正确,要么就是这道题的数据剪枝反而效果不好。由于之前已经排序了。
void dfs(int i, int h, int time,int remain)//添加了数据的传输,以及比較
{
if(i >= n)
{
if( h > max) max = h;
return ;
}
if( h + remain < max) return;
dfs(i+1, h, time, remain - bg[i].h);
if( bg[i].l + time <= bg[i].t)
dfs(i+1, h + bg[i].h, bg[i].l + time, remain - bg[i].h); }
版权声明:本文博主原创文章。博客,未经同意不得转载。
简单搜索dfs, 简单的修剪搜索的更多相关文章
- 深度优先搜索DFS和广度优先搜索BFS简单解析(新手向)
深度优先搜索DFS和广度优先搜索BFS简单解析 与树的遍历类似,图的遍历要求从某一点出发,每个点仅被访问一次,这个过程就是图的遍历.图的遍历常用的有深度优先搜索和广度优先搜索,这两者对于有向图和无向图 ...
- 深度优先搜索DFS和广度优先搜索BFS简单解析
转自:https://www.cnblogs.com/FZfangzheng/p/8529132.html 深度优先搜索DFS和广度优先搜索BFS简单解析 与树的遍历类似,图的遍历要求从某一点出发,每 ...
- POJ 2243 简单搜索 (DFS BFS A*)
题目大意:国际象棋给你一个起点和一个终点,按骑士的走法,从起点到终点的最少移动多少次. 求最少明显用bfs,下面给出三种搜索算法程序: // BFS #include<cstdio> #i ...
- [转载]SharePoint 2013搜索学习笔记之搜索构架简单概述
Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...
- SharePoint2010搜索的简单设置
1. 开启搜索服务,管理中心 – 应用程序管理 – 服务应用程序 – 管理服务器上的服务 2. 点击进去,启动"SharePoint Foundation搜索"."S ...
- Django中Q搜索的简单应用
本节涉及: 1.Q搜索在前后端的设计 2.Django中Queryset对象的序列化(由后端扔给前端的数据必然会经过序列化) 3.前端动态地构造表格以便显示(动态创建DOM对象) 思路: 用户通过前端 ...
- Sharepoint2013搜索学习笔记之搜索构架简单概述(一)
Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...
- 深度优先搜索(DFS)
[算法入门] 郭志伟@SYSU:raphealguo(at)qq.com 2012/05/12 1.前言 深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法.它的思想是从一 ...
- 利用广度优先搜索(BFS)与深度优先搜索(DFS)实现岛屿个数的问题(java)
需要说明一点,要成功运行本贴代码,需要重新复制我第一篇随笔<简单的循环队列>代码(版本有更新). 进入今天的主题. 今天这篇文章主要探讨广度优先搜索(BFS)结合队列和深度优先搜索(DFS ...
随机推荐
- Cloudera hadoop-2.3.0-cdh5.1.0 在Centos 6.5 下的安装
安装前准备 1. 虚拟机3个.安装Centos 6.5, 内存设置为4GB 2. 配置yum源为163(不配置,在安装软件时,慢的要死) 3. 关闭防火墙( iptables).disabled ...
- HorizontalScrollView做页卡的一个小记录
用HorizontalScrollView做页卡,实现一个如下图的效果:
- MySQL 改动用户password及重置rootpassword
为数据库用户改动password是DBA比較常见的工作之中的一个.对于MySQL用户账户的password改动,有几种不同的方式.推荐的方式使用加密函数来改动password. 本文主要描写叙述了通过 ...
- windows phone 独立存储空间的操作 (2)
原文:windows phone 独立存储空间的操作 (2) IsolatedStorage独立存储空间是保存应用程序的一些数据已经配置文件,独立存储空间相对于其他的wp程序是独立的,也就是说每个wp ...
- Solaris 10下使用Python3
通常在Solaris 10上仅仅能使用Python2.x. 假设使用Python3的话,一种就是http://www.sunfreeware.com获取可用的二进制版本号.只是眼下这个站点已经不提供免 ...
- 九度 题目1044:Pre-Post
转载请注明本文链接http://blog.csdn.net/yangnanhai93/article/details/40658571 题目链接:pid=1044">http://ac ...
- htc one x刷机记录
这几天有些空余时间都用来刷htc one x,来说说刷机的艰难史吧. 首先是利用百度云rom刷机,本来一直用小米系统,突然发现百度云也能够搞个,所以心血来潮要刷个百度云,先利用软件解锁,哪知道没细致看 ...
- 元素z-index继承问题
两同层元素.当中一个的子元素定位与还有一个重叠时,该子元素被覆盖(此时子元素的z-index继承的是其父元素的z-index,不管其z-index多少均被覆盖) <html> <he ...
- Codeforces 432 D. Prefixes and Suffixes
用扩展KMP做简单省力..... D. Prefixes and Suffixes time limit per test 1 second memory limit per test 256 meg ...
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
效果: 这里的数据模型有两层:每一组汽车是一层模型,每一组里面的每一行汽车品牌也是一层模型. (1)我们先创建一个WSCars模型. 在WSCars.h中: #import <Foundatio ...