记忆化搜索之拍卖
2017-10-26 20:41
162 查看
先上题
题目描述
一般情况下,XXX拍卖行的拍卖师在拍卖商品的时候都是从低价开始起拍,由买方报价,最后谁出的价格高,商品就归谁所有。但海亮(大监狱)有个拍卖行,拍卖师(hjy)在拍卖商品时正好相反:总是从高价开始起拍,如果没有人举成交牌就降价(因为他是),而且拍卖师在降价时还有规律:假如第i次报价为w元,那么第i+1次报价为w-a或者w-b元,如果降到p元时,你认为价格合适,赶快第一个举成交牌,你就花p元买下了商品。
任务:拍卖师把商品从w元降到p元的方法总数。
输入格式
文件第一行有两个正整w 和p ,第二行有有两个正整a 和b. 1 ≤ w,p ≤ 10^6 , 2 ≤ a,b ≤ 10000, a不等于b.
输出格式
文件只有一行,即所求得的方法总数。注意:测试数据中方法总数不超过MAXlongint.
样例数据
input10 3 2 3
output
3
这道题目是一道辉常简单的递归题,不需要花太多的时间就可以写出递归程序,但这时,就会惊奇的发现( )
Tle了(没错我就是这样。。。。。。太尬了)
这时候,一个伟大的算法出现在我的电脑上————记忆化搜索 (好吧我搜了)
记忆化搜索是一个绝妙的东西,众所皆知,就是空间换时间。
用朴素的说法,就是用数组来存储已经在递归中出现过的值,如果值再次出现,就直接返回该值所在层的上一层,不再继续往下深入,避免重复搜索浪费时间。(记住浪费时间就是浪费生命)
用偷来的图的搞一下子
尴尬找不到
自己画一张吧(画图走起
)
(纯手绘)
这张图数据有点小,不能很好的说明jyhss有什么用,但当数据量达到一定值后(比如说10^6或更大)就可以很清楚的发现,完全相同的递归结果重复出现了几十次乃至上万次,这样的话,不必要的搜索所花费的时间可以达到整个程序的一半以上,用程序实践可以明了的看到。
(前是用了jyhss,后是纯递归)
用了jyhss的程序耗时极短,而不用的话所用的时间是成几何倍数增加的。虽然占用的空间增加了不少,但比起可能引起会Tle的时间,我选择占用更多的空间。
好了,继续去刷递归,等待老夫下一篇bg。
相关文章推荐
- codeforces 424E Colored Jenga (状态压缩,概率dp用hash记忆优化搜索)
- 【DFS+记忆搜索】NYOJ-10-Skiing
- DFS+记忆搜索-HDU-1078
- POJ 题目1088 滑雪(记忆搜索)
- HDU 4109 Instrction Arrangement(DAG上的最长路径)记忆化搜索
- 记忆化搜索POJ-1088(dfs+dp)
- HDU 3709 ZJU 3416 Balanced Number 数位dp 记忆搜索
- 记忆化搜索之一: hihoCoder 1491 : Monster Killing
- 蓝桥杯---地宫取宝(记忆搜索=搜索+dp)
- 记忆搜索解救滑雪问题
- poj--1579--(DFS+记忆化搜索之经典)
- vj1011:记忆化搜索
- 小C打比赛 wannafly C题 (记忆花搜索)
- HDU1078:记忆搜索(dp+dfs)
- 【HDU 1331 Function Run Fun】+ 记忆搜索
- 记忆深度优先搜索
- HDOJ 1428 漫步校园 (spfa+记忆搜索)
- 【DP】 POJ 1191 棋盘分割 记忆化搜索
- UVALive 4877 记忆搜索
- HDU--1078 -- FatMouse and Cheese [记忆搜索] [DFS]