传送门 分块好题. 题意:维护区间加,维护区间前缀和的最大值(前缀和指从1开始的). 思路: 考虑分块维护答案. 我们把每个点看成(i,sumi)(i,sum_i)(i,sumi​)答案一定会在凸包上,于是我们每个块维护一个凸包. 然后发现 每次前缀和可以分区域修改,在区域内的相当于给所有点的连线加一个斜率,对于区域外的相当于打一个addaddadd标记,于是给每个块维护整体加标记,斜率增加的首项,斜率的增量标记即可. 查询的时候每个块在凸包上二分一波. 代码: #include<bits/st…
题意 题目链接 Sol 直接挂队爷的题解了 分块题好难调啊qwq #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 1e6 + 10; const LL INF = 6e18; template <typename A, typename B> inline bool chmin(A &a, B b){if(a > b) {a = b; return 1…
传送门 题意: 区间加和询问一段区间内整体前缀和的最大值 刚才还在想做完这道题做一道区间加等差数列结果发现这道就是.... 唯一的不同在于前缀和一段区间加上等差数列后,区间后面也要加上一个常数!!! 线段树没法搞吧....分块! 每个块维护整体加标记,首项,公差 修改的时候: 左面不完整的块下放标记暴力重构: 中间的整块打标记: 右面不完整的块也是下放标记暴力重构,注意这个地方$r$之外的部分也要更新! 右面完整的块也要打标记! 怎么查询呢? 左右不完整的块暴力查询 中间的整块,可以发现我们每次…
题目 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 $n$ 个最著名的经典连接起来,让游客可以通过火车从铁路起点( $1$ 号景点)出发,依次游览每个景区.为了更好的评价这条铁路,xkszltl 为每一个景区都赋予了一个美观度,而一条旅行路径的价值就是它所经过的景区的美观度之和.不过,随着天气与季节的变化,某些景点的美观度也会发生变化. xkszltl 希望为每位旅客提供最佳的旅行指导,但是由于游客的时间…
考虑分块,每块维护两个标记$ts,td$. 那么对于块中一个位置$i$,它的实际值为$i\times td+ts+v_i$. 修改的时候,对于整块,直接打标记,对于零散的暴力修改,然后重构凸壳,时间复杂度$O(\sqrt{n})$. 查询的时候在凸壳上二分即可,时间复杂度$O(\sqrt{n}\log n)$. #include<cstdio> #define N 100010 typedef long long ll; int n,m,cnt,lim,i,op,x,y,pos[N],st[N…
传送门 树链剖分菜题. 题意简述:给一个无向图,边有边权,每次询问删一条边(对后面的询问无影响)之后的最小生成树. 思路: 先跑一次kruskalkruskalkruskal并把跑出来的最小生成树给链剖了. 然后考虑如果没有删掉树边答案不变,如果删掉一条能够接上的就只有覆盖了这条边的路径,因此对于每条非树边都用来更新一次树边的信息,O(1)O(1)O(1)处理询问即可. 注意要转边为点 代码: #include<bits/stdc++.h> #define ri register int #d…
传送门 点分治好题. 题意简述:给一棵带边权的树,问所有路径中前mmm大的.m≤300000m\le300000m≤300000 思路: 网上有题解写了可以通过什么点分治序转化成超级钢琴那道题的做法蒟蒻吓得瑟瑟发抖. 然后由于我比较菜想了一个二分答案的方法. 我们二分第mmm大的值,每次用点分治检验合法性. 二分完了之后我们再跑一次点分统计答案. 然后第一个二分的时候直接做是logn3log^3_nlogn3​的. 考虑降下来一个logloglog. 我们先dfsdfsdfs一次树把每个点作为重…
传送门 短代码简单题. 题意简述:对于一个序列XXX,定义其两个伴随序列a,ba,ba,b,aia_iai​表示以第iii个数结尾的最长上升子序列长度,bib_ibi​表示以第iii个数开头的最长下降子序列长度,现在给出aaa序列,问bbb序列所有数加起来最大值是多少. 思路:首先发现bbb序列就是把这个序列反过来之后得到的X′X'X′的aaa序列,因此贪心证明一波可以发现:对于这个需要自己构造的原序列是较大的数越靠前越好 然后可以根据aaa序列建一些有向边来表示各个位置的大小关系. 考虑证明如…
传送门 题意简述:给一张带权无向图,有a,ba,ba,b两类特殊点和普通点,问使得至少有一个aaa和一个bbb连通所需要的所有边边权最小值的最大值是多少. 思路: 一眼发现可以二分,考虑怎么checkcheckcheck显然直接把所有大于二分值的并起来看满不满足要求. 正准备写的时候想了一个更简单的,把边排个序然后从大到小加进去直到满足题意时就是答案. 代码…
传送门 树链剖分菜题. 题意不清差评. 题意简述(保证清晰):给一棵带权的树,每次从aaa走到bbb,在走过的路径上任意找两个点,求后访问的点与先访问的点点权差的最大值. 思路: 考虑暴力:维护路径的前缀最小值和后缀最大值然后更新答案. 然后可以用线段树优化这个过程. 对于当前的线段树节点,它的答案=max(左儿子答案,右儿子答案,右儿子最大值−左儿子最小值)max(左儿子答案,右儿子答案,右儿子最大值-左儿子最小值)max(左儿子答案,右儿子答案,右儿子最大值−左儿子最小值) 然后由于路径是有…