一名苦逼的OIer,想成为ACMer

Iowa_Battleship

随笔分类 -  单调队列

洛谷3084 [USACO13OPEN]照片Photo
摘要:"原题链接" 神仙$DP$啊。。。 题解请移步隔壁 "大佬的博客" $QAQ$ 阅读全文

posted @ 2018-10-25 20:31 Iowa_Battleship 阅读(145) 评论(0) 推荐(0) 编辑

BZOJ1047或洛谷2216 [HAOI2007]理想的正方形
摘要:"BZOJ原题链接" "洛谷原题链接" 显然可以用数据结构或$ST$表或单调队列来维护最值。 这里采用单调队列来维护。 先用单调队列维护每一行的最大值和最小值,区间长为正方形长度。 再用单调队列维护 之前维护出的每行最值数组 的每一列的最大值和最小值,区间同上。 最后维护出的数组其实就是以每个点为左 阅读全文

posted @ 2018-10-24 20:51 Iowa_Battleship 阅读(146) 评论(0) 推荐(0) 编辑

洛谷1070 道路游戏
摘要:"原题链接" 太菜了,只会$O(n^3)$暴力$DP$,最后看大佬的博客看了好久也是一知半解。。 "大佬博客传送门" cpp include include using namespace std; const int N = 1010; struct dd{ int l, r, v[N], id[ 阅读全文

posted @ 2018-10-24 09:36 Iowa_Battleship 阅读(96) 评论(0) 推荐(0) 编辑

BZOJ1855或洛谷2569 [SCOI2010]股票交易
摘要:一道单调队列优化$DP$ "BZOJ原题链接" "洛谷原题链接" 朴素的$DP$方程并不难想。 定义$f[i][j]$表示到第$i$天,手上持有$j$股时的最大收益。 转移方程可以分成四个部分。 1. 第$i$天为空手时买股票 $\qquad\qquad f[i][j]= AP_i\times j$ 阅读全文

posted @ 2018-08-21 20:33 Iowa_Battleship 阅读(126) 评论(0) 推荐(0) 编辑

BZOJ1233 [Usaco2009Open]干草堆tower
摘要:一道单调队列优化$DP$ "原题链接" 首先想到的应该是$O(n^3)$的朴素$DP$。 定义$f[i][j]$表示第$j\sim i$块干草堆作为顶层时的最大高度。 $\qquad\qquad f[i][j]=\max\limits_{k=1}^{j 1}\{f[j 1][k]\}+1,(sum[ 阅读全文

posted @ 2018-08-21 10:42 Iowa_Battleship 阅读(159) 评论(0) 推荐(0) 编辑

POJ1821 Fence
摘要:一道单调队列优化$DP$。 "原题链接" 设$f[i][j]$表示前$i$个工匠粉刷前$j$块木板(可以有不刷的木板)能获得的最大报酬。 1. 第$i$个工匠可以不刷第$j$块木板,此时$f[i][j]=f[i 1][j]$。 2. 第$j$块木板可以不刷,此时$f[i][j]=f[i][j 1]$ 阅读全文

posted @ 2018-08-16 10:14 Iowa_Battleship 阅读(128) 评论(0) 推荐(0) 编辑

导航