单调队列
zsyz_lb2003
这个作者很懒,什么都没留下…
展开
-
单调队列
过渡题 给定一个n个数的数列,从左至右输出每个长度为m的数列段内的最大数。 比如8个数的数列[1 3 -1 -3 5 3 6 7],m=3,那么每连续3个最大值如下: 位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 ...原创 2019-06-25 20:16:22 · 234 阅读 · 2 评论 -
[POJ1821]Fence
题面描述 传送门 思路 首先我们先按照sis_isi来排序,保证工匠的有序性。 Fi,jF_{i,j}Fi,j为现在是第iii个工匠粉刷前jjj个木板(有的木板可以不刷) 状态转移方程为: Fi,j=max{Fi−1,j(这个工匠太懒了,不干活)Fi,j−1(这个工匠不刷第j个木板)Fi−1,k+pi∗(j−k),j≥si,j−li≤k≤si−1}\large\ F_{i,j}=...原创 2019-06-26 11:08:21 · 256 阅读 · 0 评论 -
[NOI2005]瑰丽华尔兹
题面描述 传送门 思路 这个代码真是又臭又长 思想很简单,相信大家做单调队列应该深有感受了。 就不讲了。 AC code #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> #define gc getchar()...原创 2019-07-02 18:53:10 · 148 阅读 · 0 评论 -
[USACO12MAR]花盆Flowerpot
题面描述 传送门 思路 观察完题意之后,我们看到最小 就会想到二分枚举花盆长度xxx 我们需要一个有序的序列,所以我们要按x坐标从小到大排序。 bool cmp(node a,node b){return a.x<b.x;} 判断两个雨滴是否可以被接到 while(l1<=r1&&a[i].x-a[q1[l1]].x>x)++l1; 我们需要比较在合法前提下,...原创 2019-06-28 08:07:35 · 120 阅读 · 0 评论 -
[HAOI2007]理想的正方形
题面描述 传送门 思路 这是一道二维单调队列题啊(其实就是两次单调队列) 我们要求([i−n+1,i],[j−n+1,j])([i-n+1,i],[j-n+1,j])([i−n+1,i],[j−n+1,j])的最大值,由于能力有限,我们一次只能处理一维。 先处理(i,[j−n+1,j])(i,[j-n+1,j])(i,[j−n+1,j])的最大值,因此我们需要一个一维数组CCC,去存储值。 qr(...原创 2019-06-28 09:17:48 · 85 阅读 · 0 评论 -
[HAOI2007]修筑绿化带
题面描述 传送门 思路 (一年出两道单调队列) (小花坛不能在大矩阵的边上) 理解一下题意,冥冥之中看见求和,就会想到不管三七二十一先求前缀和。 for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) qr(s[i][j]),s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1]; for(int i=C+1;i&l...原创 2019-06-28 09:50:16 · 148 阅读 · 0 评论 -
[SCOI2009]生日礼物
题面描述 传送门 思考 本来想用二分的, 读完数据之后,又发现不用了。 然而需要开多一个数组ppp记录颜色最近出现的位置,以便进行玄学操作 当达成目标(now==endnow==endnow==end)时, if(now==end) { while(l<i&&p[a[l].col]!=a[l].p)++l;//不影响,而且更短 ans=min(ans,(ll)a[i].p...原创 2019-06-28 11:33:07 · 109 阅读 · 0 评论 -
[SCOI2010]股票交易
题面描述 传送门 思路 这道题DP的很明显啊(可惜我就是不会写啊) 提前声明: 这里的nnn为TTT,mmm为MaxPMaxPMaxP,t为WWW,a为APiAP_iAPi,c为BPiBP_iBPi,b为ASiAS_iASi,d为BSiBS_iBSi 状态转移方程: Fi,j={Fi−1,j−a∗j(j≤b)Fi−t,k−a∗j+a∗k(0≤k≤j−1&j−k≤d)Fi−t...原创 2019-06-28 14:34:26 · 133 阅读 · 0 评论 -
[LuoguP1714]切蛋糕
题面描述 传送门 思路 太水了,看看就好。 AC code #include<cstdio> #include<algorithm> #include<cstring> #include<cstdlib> #include<cmath> #define gc getchar() #define ll long long using na...原创 2019-06-28 15:59:29 · 154 阅读 · 0 评论