随笔分类 -  奇妙算法搜集

摘要:转载自:地址 滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。 一个简单的例子: 斐波那契数列: 阅读全文
posted @ 2018-03-22 20:08 柳暗花明_liu 阅读(589) 评论(0) 推荐(0)
摘要:题目描述 稍微难一点的DP,用到了优先队列来简化代码,每个点有几只奶牛用了很巧的方法处理 算法: 递推式子是:f[i+2]=f[i]+1; ( i+2-2b<=i<=i+2-2a ) f[i]即i点的解 先计算出2a-2b这一段的f[i],然后将节点小于等于i+2-2a处的f[i]值存入优先队列,在 阅读全文
posted @ 2018-03-02 18:31 柳暗花明_liu 阅读(130) 评论(0) 推荐(0)
摘要:题目描述 跟关灯问题相似的地方是,第一眼都很懵逼,还是看了视频之后照着视频的思路过的;毕竟自己来的话效率奇低。 分析: 首先这是一道枚举问题。 枚举:就是从可能的解的集合中一一列举各个元素,判断其是否符合问题要求,符合的就是问题的解。 枚举问题的三个关键是: 一:给出解空间,建立简洁的数学模型。 二 阅读全文
posted @ 2018-02-25 13:40 柳暗花明_liu 阅读(188) 评论(0) 推荐(0)
摘要:题目陈述 这道题乍一看不会做,但听完老师的思路就变得很简单: 虽然情况很多似乎列举不完,但是我们可以只列举第一行的所有情况,然后推出后面的所有情况,这下这道题就有了思路 我自己写的时候没有用到下面这两句代码(也即在完整代码中高亮标记的那两句) 这两句代码非常巧妙,我感觉算是神来之笔~ 另外注意代码中 阅读全文
posted @ 2018-02-24 20:54 柳暗花明_liu 阅读(197) 评论(0) 推荐(0)
摘要:题干在最后。 这道题本来是一道DP的练习题,的真不好意思的是,尽管那道更复杂的poj1661我最终做出来了,可是花太多时间了!我决定改变学习策略,多看别人的,等有底子了,再自己来! 要知道国外一位伟人曾说过这样的话: 年轻人,不要总想着创造,先学习再说。 ——沃·兹基硕德 不过说实话,我真的觉得自己 阅读全文
posted @ 2018-02-09 20:29 柳暗花明_liu 阅读(313) 评论(0) 推荐(0)