单调队列
ModestCoder_
一个modest的coder
展开
-
【题解】LuoGu5202:USACO19JAN]Redistricting P
原题传送门这个是双关键字的单调队列记HHH为1,GGG为-1,统计前缀和暴力dpi=min(dpj+(sumi>=sumj))(i−j<=m)dp_i=min(dp_j+(sum_i>=sum_j))(i-j<=m)dpi=min(dpj+(sumi>=sumj))(i−j<=m)用单调队列维护,如何判断两个数在队列中的先后?对于两个数p,qp,qp,qdpp!=dpqdp_p!=dp_qdpp!=dpq,dpdpdp值小的那个优先dpp=dp原创 2020-09-20 18:31:19 · 205 阅读 · 0 评论 -
【题解】LuoGu3470:[POI2008]BBB-BBB
原题传送门首先确定一个指导思想,就是先确定把多少个移到前面来,再计算取反哪些所以枚举把多少个移到前面来,就是把整个数列弯成一个环,在环上枚举起点就好了确定了起点之后,其实可以直接求出答案。考虑要满足两个条件,任意前缀和>=−p>=-p>=−p,总和+p=q总和+p=q总和+p=q显然第一个条件先要满足先求出以这个点为起点,最小的前缀和,这个部分直接用单调队列搞定对于这个最小前缀和sumsumsum,如果sum+p<0sum+p<0sum+p<0,就要花代价解原创 2020-09-13 13:14:02 · 173 阅读 · 0 评论 -
【题解】LuoGu2254:[NOI2005]瑰丽华尔兹
原题传送门首先还是暴力dpdpt,x,ydp_{t,x,y}dpt,x,y表示时间ttt,位置(x,y)(x,y)(x,y)的答案dpt,x,y<−−−dpt−1,x,ydp_{t,x,y}<---dp_{t-1,x,y}dpt,x,y<−−−dpt−1,x,ydpt,x,y<−−−dpt−1,lstx,lsty+1dp_{t,x,y}<---dp_{t-1,lstx,lsty}+1dpt,x,y<−−−dpt−1,lstx,lsty+1复杂度是O原创 2020-08-29 13:43:12 · 226 阅读 · 0 评论 -
【题解】LuoGu2569:[SCOI2010]股票交易
原题传送门开坑原创 2020-08-27 16:24:28 · 137 阅读 · 0 评论 -
[题解]LuoGu2698: [USACO12MAR]花盆Flowerpot
原题传送门这道题在洛谷难度为蓝题(提高+省选-)个人认为难度普及+够了吧不难想到单调队列的做法,首先二分答案,对于每个花盆宽度,我们进行O(n)的验证维护两个单调队列,分别维护纵坐标的最小值与最大值,从左往右枚举横轴坐标,每个时刻都能计算出题目里说的时间差D,与输入的进行比较,若满足要求,则返回trueCode:/*q1维护最小值,q2维护最大值*/#include <bi...原创 2019-03-06 19:05:17 · 260 阅读 · 0 评论