第八天:poj1010(深度搜索+剪枝,之前完全没有接触过,所以不会,所以多学!!)
2015-04-10 09:53
253 查看
题目意思:给出了N种邮票,每种邮票都有自己的面值(可重复)要满足购买者所需要的值m
1.所用的n种邮票可以重复选
2.张数《=4
3.尽可能使用最大面值的邮票
4.张数尽可能少
5.如果张数相同则面值最大的邮票数量多的优先
6.如果上面都一样,则输出tie
题目的个人分析:
一开始做的时候,首先对于题目的要求一定要看清楚,那个是优先的解,然后是怎么做?对于我这种没怎么学过什么高端算法的人来说,最好的打算就是枚举出来,然后选择最优解,但是这样我觉得是没有提高的,所以今天必须要换一种思路去解题。
网上的大牛们给出了一种挺棒的,我以前听说过但是没用过的算法(dfs+剪枝)
我是第一次接触这个算法,所以我一定要自己说一遍这个:
(我描述一个算法一定会用自己的语言以一种最简单明了的方式去说的,因为所有具体的细节网上说的太多太多,多说无益)
1.dfs运用在那里?
答:图的遍历
2.为什么要用dfs?
答:找最优解
3.怎么用dfs(dfs的思想是什么)?
访问图的一个顶点,然后让这个顶点的一个变量改变,这个变量代表这个顶点已经被访问过了,若存在未被访问过的相邻的点那么dfs(这个点)。
4.剪枝是什么意思?
简单的说排除那些遍历操作时不满足题目需求的。(很大程度上面让算法的时间复杂度降低了)
对于这道题目来说,简单的来说,用一个数组去保存最优解,然后dfs搜索满足的解(根据题目给的条件去判断),然后不断更新原来的最优解数组,因为邮票数量不超过4所以剪枝,还要判断tie的情况。
当然这道题可以循环4次把所有的解都找出来,然后找到最优解,主要是因为只有4张邮票,数量并不多。其实这道题做下来对于dfs只是一个初步的认识,之后一定会有更深入的学习。
1.所用的n种邮票可以重复选
2.张数《=4
3.尽可能使用最大面值的邮票
4.张数尽可能少
5.如果张数相同则面值最大的邮票数量多的优先
6.如果上面都一样,则输出tie
题目的个人分析:
一开始做的时候,首先对于题目的要求一定要看清楚,那个是优先的解,然后是怎么做?对于我这种没怎么学过什么高端算法的人来说,最好的打算就是枚举出来,然后选择最优解,但是这样我觉得是没有提高的,所以今天必须要换一种思路去解题。
网上的大牛们给出了一种挺棒的,我以前听说过但是没用过的算法(dfs+剪枝)
我是第一次接触这个算法,所以我一定要自己说一遍这个:
(我描述一个算法一定会用自己的语言以一种最简单明了的方式去说的,因为所有具体的细节网上说的太多太多,多说无益)
1.dfs运用在那里?
答:图的遍历
2.为什么要用dfs?
答:找最优解
3.怎么用dfs(dfs的思想是什么)?
访问图的一个顶点,然后让这个顶点的一个变量改变,这个变量代表这个顶点已经被访问过了,若存在未被访问过的相邻的点那么dfs(这个点)。
4.剪枝是什么意思?
简单的说排除那些遍历操作时不满足题目需求的。(很大程度上面让算法的时间复杂度降低了)
对于这道题目来说,简单的来说,用一个数组去保存最优解,然后dfs搜索满足的解(根据题目给的条件去判断),然后不断更新原来的最优解数组,因为邮票数量不超过4所以剪枝,还要判断tie的情况。
当然这道题可以循环4次把所有的解都找出来,然后找到最优解,主要是因为只有4张邮票,数量并不多。其实这道题做下来对于dfs只是一个初步的认识,之后一定会有更深入的学习。
相关文章推荐
- poj入门水题--深度搜索(dfs)题 1011,含各种剪枝,比较经典
- poj 1010 STAMPS 解题报告 -- 搜索 遍历 剪枝
- poj 1011 Sticks 深度搜索+(剪枝)
- poj1011 stick 强力搜索剪枝
- 图的深度优先,完全搜索...有点脑残....java实现
- POJ 2531 Network Saboteur(简单搜索技巧 + 剪枝)
- POJ 1008 深度优先、记忆搜索
- poj 1011 Sticks(经典搜索问题:DFS+剪枝)
- poj 1011 sticks 搜索加剪枝
- 搜索_Poj 1465_剪枝_余数判重
- 1010 Tempter of the Bone 深度搜索 奇偶剪枝
- POJ-1054 The Troublesome Frog 搜索+剪枝 Or DP+Hash
- poj-1054-The Troublesome Frog-搜索+剪枝
- DFS深度搜索算法实现深度探究解析-以POJ 1040为例
- POJ1010-搜索题基础
- POJ 1416 Shredding Company [暴力搜索 简单剪枝]
- POJ 1054 The Troublesome Frog 搜索+剪枝
- POJ 1011 sticks(深度优先加剪枝)
- poj1088 DFS深度搜索
- POJ 2362(Square-搜索剪枝1-相对顺序)