![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调性
a1214034447
这个作者很懒,什么都没留下…
展开
-
2019牛客暑期多校训练营(第八场)A题(单调栈)
题目链接:https://ac.nowcoder.com/acm/contest/888/A解题思路:将问题转化为计算一个点作为极大全1矩阵的右下角的次数的和。那么可想而知当一个点(i,j)作为右下角时用(i,k)做左下角比(i,q)时的宽要大(j>k>q),如果是小的话,也不会是极大了。所以当(i,j)作为右下角时,他的多个极大值越往左长越大,宽越小。因此我们就需要...原创 2019-12-04 13:55:37 · 221 阅读 · 0 评论 -
Gym - 100851L [二分+线性推导]
题目链接:https://vjudge.net/problem/Gym-100851L解题思路:根据题目知道,墙的两边是不能放石头的,所以最终的结果肯定会收到两边墙的限制,从而使得答案不会超过1e9+1e5。此外我们再去二分最大高度,一个明显的结论就是以i为最高点建墙的话最少花费肯定是建一个金字塔形的墙面。但由于原始的墙面,有可能花费的更少,也就是当某一竖墙在金字塔的位置的高度小...原创 2019-05-16 21:43:45 · 263 阅读 · 0 评论 -
Gym - 101174B[极角排序]
题目链接:https://vjudge.net/problem/Gym-101174B解题思路:对于给定的a,b,我们去看最多有多少个点可以大于等于(a,b),最少有多少个点可以大于(a,b),最后就能确定(x0,y0)的排名了。我们可以把w1看做x,w2看做y,那么就有 (a1-a)*x + (b1-b)*y >= 0,这不就是一条在二维平面直角坐标系上,经过原点斜率为...原创 2019-05-05 16:37:50 · 255 阅读 · 1 评论 -
Codeforces Round #551 (Div. 2) 题解
题目链接:http://codeforces.com/contest/1153A. Serval and Bus计算每一班车到达车站的时间超过m,并且离m最近的时间去最小就好了。#include <bits/stdc++.h>using namespace std;const int mx = 1e2 + 10;int main(){ int n,m; ...原创 2019-04-23 17:05:14 · 198 阅读 · 0 评论 -
2017 World Final专题
C:二分匹配使得至多的行列要求相同最多在同一个位置#include<iostream>#include<cstring> #include<iostream>#include<cstdio>#include<vector>#include<cmath>#include<queue>#inc...原创 2017-06-01 22:49:14 · 2629 阅读 · 0 评论 -
斜率优化dp笔记
瞎扯:算法真的是无止境,从暴力到dp原本以为很神奇了,没想到还能优化dp,而且是把O(n^2)变成O(n),真是无fuck说。引入: 我们来分析这么一个问题,给你n个数,要你把他们分成连续的若干块,使得让他们的每段和的平方加起来最小.正常我们会想到的就是O(n^2)的dp,方程就是: dp[i] = min(dp[j]+(sum[...原创 2018-07-17 14:35:46 · 250 阅读 · 0 评论 -
FZU 2302 - 斜率优化dp
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2302解题思路:相比较hdu3507点击这里从O(n^2)变成O(n),这里是O(n^4)变成O(n^3).因为要求了块数所以要变成二维dp,其次又有n种旋转状态,所以就增加了O(n^2),道理和上面链接是一样的,就不多说了。不懂得戳上面。#include<iostream&...原创 2018-07-17 14:47:29 · 352 阅读 · 0 评论 -
Codeforces Round #424 Div. 2专题
A题:波峰的时候可以连续相等否则其他不行。然后满足只有一个波峰或者单调就行了。代码:#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>...原创 2017-07-20 18:53:57 · 219 阅读 · 0 评论 -
洛谷 P2422-仙人掌图
题目链接:https://www.luogu.org/problemnew/show/P4244解题思路:不懂基环树的可以先做这个:https://blog.csdn.net/a1214034447/article/details/88318541对于仙人掌图可以看做基环树中环的节点为根的树还是个基环树的多个“嵌套”。所以做法是大同小异。但这里要求最小距离的最大,而且边长度都...原创 2019-03-07 20:09:40 · 866 阅读 · 0 评论 -
BZOJ 1791-基环树DP
题目链接:https://darkbzoj.cf/problem/1791解题思路:如果题目给的是一棵树,那么就跟简单了,直接搞个DP求出树上最长两点路径就OK了:dp[i]表示以i为子树的节点到i的最长距离。那么有ans = max(ans,dp[u]+dp[v]+1);dp[u] = max(dp[u],dp[v]+1);其中v是u的子节点。所以我们可以把这个基环...原创 2019-03-07 19:57:48 · 219 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 B题 - 单调队列
题目链接:点击这里 解题思路:此问题相当于在01矩阵中找全1的子矩阵个数.从下到上,从左到右枚举点作为子矩阵的右上角.那么就是去找合法的左下角了.假设现在以(x,y)作为右上角,在(x,y)的左下角去找一个点作为子矩阵的左下角使得这个子矩阵不会包含任意的0点那么(x,y)左下角的0点坐标会围成一个高度递减的楼梯型围线,它与x轴,y轴组成一个多边形,那么在这多边形内的点作为左...原创 2018-09-01 22:04:26 · 323 阅读 · 0 评论 -
hdu 6444 - 最大子段和(单调队列)
题目链接:点击这里 解题思路:根据k我们会得到一个循环周期,将在同一个循环节的点都归为同一类,因为归为同一类的点走过一个循环周期得到的快乐值时一样的。很明显如果循环周期是负的那一定就不走一个循环了。那直接求最长不超过m的最大连续子段和就行了。如果循环周期大于0,就有两种可能了(循环周期次数a=m/len(len为周期长度),b=m%n):1.走完a圈后再加上不超过b的最大连...原创 2018-08-25 21:29:08 · 1140 阅读 · 0 评论 -
hdu 6319 - 单调队列
题目链接:点击这里 解题思路:听说反向比较好做。。。。后来想想好像确实,不过比赛的时候做的是正向,就说正向吧。先用一个单调栈处理出big[i]表示从左到右第一个大于a[i]的位置。时间复杂度O(n)最后就说单调队列解决问题了。考虑当a[i+1]>a[i]的时候其实直接删除队首a[i]就可以了.i+1完全继承i的状态。那么当a[i+1]<=a[i]时,如果删除a[...原创 2018-08-05 13:05:52 · 193 阅读 · 0 评论