https://www.acwing.com/problem/content/334/ 第一次写单调队列优化的dp,首先朴素的做法不难想到,就是复杂度 $O(n^3)$ ,然后考虑优化。 每天都从 $pre=max(0,i w 1)$ 天转移过来就刚刚好了。 考虑每个k是怎么更新j的。 买入股票: ...
【参考博客及视频】 1、大雪菜 2、背包九讲——全篇详细理解与代码实现 3、dd大牛的《背包九讲》 4、背包问题 (附单调队列优化多重背包 【题目】 1、Acwing 背包题目 2、01背包问题 Luogu 2925 干草出售Luogu 1616 疯狂的采药HDU 3466 Proud Mercha ...
分类:
其他好文 时间:
2019-09-07 11:10:34
阅读次数:
116
修筑绿化带题解 我的做法实际上神奇且麻烦,大家其实可以看一下别人的做法。 这是一个单调队列优化DP题(~~废话~~)。 我的大概做法是:将每个c乘d的矩形化成一个点,将从a乘b的矩形中选一个c乘d的矩形转化为:在(a c+1) (b d+1)的矩形中选一个值最小的点。 具体做法如下: 1.求出二维前 ...
分类:
其他好文 时间:
2019-09-06 22:45:58
阅读次数:
82
分析 多重背包优化,输出方案 二进制优化 / 单调队列优化 输出方案只需要记录是否转移,用bool类型存 这题好像卡空间 代码 1.二进制优化 1 /************************ 2 User:Mandy.H.Y 3 Language:c++ 4 Problem:luogu 5 ...
分类:
其他好文 时间:
2019-08-30 22:29:28
阅读次数:
72
1.关于BFS的Key_word: ①hash或状态压缩记录状态 ②状态剪枝 ③反向BFS ④双向BFS ⑤特殊初始化VIS数组 ⑥动态图的搜索 ⑦优先队列优化搜索 ⑧数位搜索 下面是一一讲解: 1.hash或状态压缩记录状态 : 当状态太多而且边界也广时数组难以存储状态时或者题目对空间的要求较为苛 ...
分类:
其他好文 时间:
2019-08-27 00:48:08
阅读次数:
109
http://poj.org/problem?id=1821 题意:给长度为n的木板,k个工人,每个工人要么不粉刷,或者选择一个包含木板si,长度不超过li的连续的一段木板粉刷,每粉刷一块得到pi的报酬,问如何安排工人使得总报酬最大? 思路:可以按si给工人排序,这样我们就可以按照顺序依次安排工人。 ...
分类:
其他好文 时间:
2019-08-25 20:10:07
阅读次数:
120
Invitation Cards "POJ 1511" 从这道题我还是发现了很多的问题,首先就是快速输入输出,这里的ios:: 这一行必须先放在main函数第一行,也就是输入最开始的前面,否则系统疯狂报WA。 其次就是,ios的位置没有错之后又疯狂地报TLE,就是超时了,这个问题要不就是算法的复杂度 ...
分类:
其他好文 时间:
2019-08-24 13:01:59
阅读次数:
77
标签(空格分隔): dp 单调队列优化 题目描述 有N块木板从左到右排成一行,有M个工匠对这些木板进行粉刷,每块木板至多被粉刷一次。 第 i 个木匠要么不粉刷,要么粉刷包含木板 $S_i$ 的,长度不超过 $ L_i $ 的连续的一段木板,每粉刷一块可以得到 $ P_i $ 的报酬。 不同工匠的$S ...
一、线性 1.简单示例 (1)LIS问题 (2)LCS问题 (3)数字三角形 二、背包 1.0/1背包 2.完全背包 3.多重背包(二进制拆分) 4.分组背包 三、区间 四、树形 1.背包类 2.二次扫描与换根法 五、环形与后效性处理 六、状态压缩 七、倍增优化 八、数据结构优化 九、单调队列优化 ...
分类:
其他好文 时间:
2019-08-11 17:00:57
阅读次数:
107
"思路" 这里只是贴一下 JZOJ4224.食物 的代码,挺有意思的水题,虽然一眼就看得出来两个多重背包,但是比较有意思的一个地方是在处理交通工具时为了求出答案,把价格当做体积,把最大装载量当做价值。一切思路还是为了答案服务,这是值得记住的。 c++ include include include ...
分类:
其他好文 时间:
2019-08-11 10:49:35
阅读次数:
83