Sxy_Limit_Luogu_Sol
sxy的luogu题解
Sxy_Limit
活着.
展开
-
高等数学学习笔记DAY24
闭区间上连续函数的性质一直连续性先介绍函数的一直连续性概念.设函数在区间 III 上连续,x0x_0x0 是在 III 上的任意取定的一个点.由于 f(x)f(x)f(x) 在点 x0x_0x0 连续,因此 ∀ε>0\forall\varepsilon>0∀ε>0,∃ δ>0\exists\ \delta>0∃ δ>0,使得当 ∣x...原创 2020-04-14 17:40:35 · 243 阅读 · 0 评论 -
CF1335E Three Blocks Palindrome
题目大意给出一个序列,找到一个最长的子序列,使得子序列满足 [a,a,…,a⏟xb,b,…,b⏟ya,a,…,a⏟]x\begin{matrix}[\underbrace{a,a,\dots,a}\\x\end{matrix}\begin{matrix}\underbrace{b,b,\dots,b}\\y\end{matrix}\begin{matrix}\underbrace{a,a,\do...原创 2020-04-14 10:57:39 · 223 阅读 · 0 评论 -
CF911G Mass Change Queries
题目大意给出一个序列,支持区间将某个数变为某个数,输出最终的序列.分析序列中的元素只有 100100100 种,所以直接线段树上每个节点记录每个数出现的次数就好了.但是,这样的做法时间复杂度并不优秀.那么就从这个输出去考虑,可以发现在最终结果前没有必要知道每个点确切的值,那么考虑对每一种数建一颗线段树,将一种颜色变为令一种颜色只需要在原来的线段树中将修改区间部分分裂出来,在合并到变成的颜...原创 2020-04-10 14:01:36 · 155 阅读 · 0 评论 -
CF689D Friends and Subsequences
题目大意给出两个长度为 nnn 的序列 aaa 和 bbb,计算有多少对 l,rl,rl,r 满足 max{al,al+1,…,ar−1,ar}=min{bl,bl+1,…,br−1,br}\max\{a_l,a_{l+1},\dots,a_{r-1},a_r\}=\min\{b_l,b_{l+1},\dots,b_{r-1},b_r\}max{al,al+1,…,ar−1,ar}=...原创 2020-04-10 10:09:15 · 128 阅读 · 0 评论 -
P6242 【模板】线段树 3
吉老师线段树模板题,如果想要知道更多可以去看看2016年的国集论文.分析先来看5个操作(第一感觉):区间加,只要用懒标记搞一下就好了.区间取min,吉老师线段树基本操作,记录一下最大值,最大值出现次数,严格次大值就好了.区间和,直接维护就好了.区间max,已经维护了.区间历史max,维护一下最大加标记就好了.然后您就可以得到30分的好成绩.考虑一下这个做法有什么问题.可以发...原创 2020-04-07 10:11:59 · 250 阅读 · 0 评论 -
P2824 [HEOI2016/TJOI2016]排序(在线做法)
分享一种本题不用STL的在线做法.题目大意给出一个 111 到 nnn 的排列,区间排序和单点查询.分析本题有一种通过二分做到的 O(mlog22n)\mathcal{O}(mlog_2^2n)O(mlog22n) 的做法,但是理解起来比较麻烦,而且时间复杂度也比较高,而且只可以查询一个数,甚至不可以在线做,显然这个方法并不优秀,那么是否存在一种容易理解且有着优秀时间复杂度的做法呢,这显...原创 2020-03-23 17:22:19 · 224 阅读 · 0 评论 -
P6166 [IOI2012]scrivener
题目大意给出一个空字符串支持在末尾加上一个字符,查询某个位置的字符,回到 kkk 个操作前.分析显然的可持久化数组,可以通过可持久化线段树实现,为了方便处理,开始的区间是 111 到 100000010000001000000 开始,这样保证不会出问题,加上一个数就直接单点修改,查询也只要直接单点查询,对于每次修改对于修改的区间部分产生一个新的版本,其他仍然用之前版本的部分.代码#inc...原创 2020-03-18 20:25:16 · 187 阅读 · 0 评论 -
CF1325D Ehab the Xorcist
题目大意给出 uuu 和 vvv两个数,需要构造出最短的且异或和为 uuu,和为 vvv 的序列.分析(分析均在二进制下)先考虑不存在的情况,可以发现如果 u>vu>vu>v 显然是不存在的,在考虑每加入一个新的数,如果是奇数,那么异或和最后一位会异或上 111,和的最后一位也会异或上 111,如果加的偶数则最后后一位不会变化,所以必须 uuu 和 vvv 奇偶性相同时才...原创 2020-03-15 10:16:20 · 158 阅读 · 0 评论 -
CF1325C Ehab and Path-etic MEXs
CF神奇构造题题目大意给出一颗 NNN 个节点树,每条边有边权,边权为 000 到 N−2N-2N−2 的整数,且不重复,使得任意两点的简单路径的MEX的最大值最小.(MEX指第一个没有出现过的非负整数)分析对于MEX最重要自然是 000,而且因为是树,所以必然可以做到将 000 和 111 放入同一条树链中,那么就要考虑 222 的位置了,不可以让他出现在这条树链中,理解一下就是必须有一...原创 2020-03-15 09:17:04 · 240 阅读 · 0 评论 -
CF1324A Yet Another Tetris Problem
闲得无聊,发个位运算版题解,谔谔题目大意给出一个序列 aaa,每次操作可以在任何一个元素加上 222,问最后是否可以使得所有元素相等.分析可以发现最大值 −-− 当前位置要是一个偶数,那么再理解一下就是所有元素的奇偶性相同,那么可以维护一个 andandand 和,以及一个 ororor 和,最后看二进制最后一位就好了.代码#include<bits/stdc++.h>#...原创 2020-03-13 08:54:31 · 124 阅读 · 0 评论 -
P4175 [CTSC2008]网络管理
题目大意给出一棵树,每个点有一个权值,支持查询树链上第 kkk 大数和单点修改.分析先把修改操作去掉开始(题目),不带修改树链第 kkk 大,要查询第 kkk 大就很容易想到用一些数据结构维护(废话),例如权值线段树,平衡树等等.先从一个看似不相关的问题开始考虑,计算一条树链上所有数的和需要怎么办?很显然这个东西可以树剖一下,再用前缀和优化,可以做到 O(log2N)\mathcal{O...原创 2020-03-10 19:47:01 · 188 阅读 · 0 评论 -
P3799 妖梦拼木棒
题目大意给出 NNN 根木棒,求出在这些木棒中选出 444 根组成等腰三角形的方案数.分析四根木棒要组成一个等腰三角形只有当两根木棒的长度相同,另外两根木棒的长度和与这两根木棒长度相同时才行.于是可以预处理一个数组 ppp,pip_ipi 表示选两根木棒的长度和为 iii 的方案数,这样对于长度为 kkk 的等腰三角形的个数就是 Csumk2×pkC_{sum_k}^2\times p_...原创 2020-03-06 17:11:30 · 152 阅读 · 0 评论 -
P6157 有趣的游戏
本篇题解不需要维护严格前四大值,也不需要会STL,适合各种语言的选手看思路.题目大意给出一颗有点权的无根树,支持单点修改(加上一个数),在树链上插叙两个点的点权(wi,wjw_i,w_jwi,wj)使得 wimod wjw_i \mod w_jwimodwj 最大,且 wi≠wjw_i \not= w_jwi=wj,以及在去掉这两个点后的整颗树上查询两个点的点权(wq,wp...原创 2020-03-03 14:43:08 · 287 阅读 · 0 评论 -
P5826 【模板】子序列自动机
不会用STL的路过题目大意给出一个序列 aaa 和一些序列,需要判断这些序列是否是 aaa 的字序列.分析这篇文章不会用到vector,保证可以让pascal等语言的用户也看懂并且可以轻松实现.序列自动机如何快速判断一个序列是否是另一个序列的子序列,这时就可以用到序列自动机了,对于暴力的做法可以枚举需要查询的序列的第 iii 个位置,在用一个类似指针的东西枚举在原序列中的下一个相等的位...原创 2020-02-29 18:47:18 · 258 阅读 · 0 评论 -
P4247 [清华集训2012]序列操作
题目大意给出一个序列,支持区间加,区间变为相反数,查询区间中取 ccc 个数的乘积的所有方案的总和.分析先从没有修改开始,查询区间中选 ccc 个数乘积的所有方案的总和,ccc 的范围很小,所以可以想到用线段树维护,对于每个节点维护一个数组 fff,fif_ifi 表示这个节点的区间中选 iii 个数的乘积的所有方案的总和,至于合并,可以枚举两颗子树中选取的数的个数,然后相乘计算贡献(相当...原创 2020-02-28 20:20:19 · 203 阅读 · 0 评论 -
P5080 Tweetuzki 爱序列
题目大意给出一些数,需要求出 ai+13=ai\frac{a_{i+1}}{3}=a_i3ai+1=ai 或 ai+1=2×aia_{i+1}=2 \times a_iai+1=2×ai 时最长的序列 aaa.分析可以发现符合条件的序列 aaa 中不会出现重复的数字,而且对于一个数它的下一个位置最多只有两种情况,于是问题就变成了无环有向图最长链,这样就可以想到记忆化搜索,fif_i...原创 2020-02-27 14:43:42 · 106 阅读 · 0 评论 -
AT4741 [ABC132D] Blue and Red Balls
题目大意给出一个长度为 NNN 的01串,其中有 KKK 个 111,其他都是 000,需要求出当着 KKK 个 111 分成 111 到 KKK 段每一个的方案数.分析因为需要将这 KKK 个 111 分成 iii(1≤i≤K1 \leq i \leq K1≤i≤K)段,那自然就会想到隔板法,那么方案数就是 CK−1i−1C_{K-1}^{i-1}CK−1i−1,要将这 iii 段放入长...原创 2020-02-25 12:42:18 · 189 阅读 · 0 评论 -
P1975 [国家集训队]排队
题目大意给出一个序列 hhh,支持交换其中的两数,求出每一时刻的逆序对个数.分析求逆序对是 O(Nlog2N)O(N\log_2N)O(Nlog2N) 的,有 MMM 个操作,如果暴力求的话时间复杂度就是 O(MNlog2N)O(MN\log_2N)O(MNlog2N) 虽然数据范围不大,但是还是可能因为评测机浮动而TLE,所以就不要想着折腾这些东西了,还是要用一些正经点的方法去过这...原创 2020-02-24 19:03:50 · 177 阅读 · 0 评论 -
线段树入门
本文会比线段树学习笔记中写得更详细(可能).线段树(Segment Tree)入门线段树的作用&原理线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化...原创 2020-02-22 17:22:59 · 117 阅读 · 0 评论 -
AT2381 [AGC015C] Nuske vs Phantom Thnook
题目大意给出一个01矩阵,这个矩阵有一个特殊的性质: 对于任意两个 111 之间最多只有 111 条由 111 构成的路径.每次询问给出一个矩形范围,查询在这个范围内的联通快个数.分析先从给出的性质出发,可以发现如果在所有相邻的 111 之间连上一条边(双向边)以后这个性质就转化成了在这若干个 111 所组成的图中不会出现环,在仔细思考一下,不会出现环,而且是双向边,这意味着什么?没错,这是...原创 2020-02-20 16:06:54 · 113 阅读 · 0 评论 -
CF383C Propagating tree
这应该属于一个比较麻烦的数据结构处理树上问题.题目大意给出一颗根节点编号为 111 的树,对于一个节点修改时在它的子树中对于深度奇偶性相同的节点加上这个权值,不同则减去这个值,单点查询.分析先给出这个问题的弱化版:给出一颗根节点编号为 111 的树,对于一个节点修改时在它的子树中节点也加上这个权值,单点查询.对于上面这个问题就好处理很多了,DFS序有一个性质,又称括号定理,在树中这个就...原创 2020-02-19 15:57:03 · 151 阅读 · 0 评论 -
P5368 [PKUSC2018]真实排名
PKUSC签到题题目大意给出一个长度为 NNN 的序列,序列中有 KKK 个数会乘二,对于每个数计算在乘二后大于等于这个数的个数与乘二前没有发生变化的方案数.分析思路很清晰,可以将答案分为两个部分计算当前位置的数没有乘二时当前位置没有乘二,所以所有大于等于自己的元素是否乘二每有影响,如果一个数小于这个数的一半(不可以等于)那么这个数如果乘二也不会产生影响.于是可以计算出大于等于这个数...原创 2020-02-18 17:40:18 · 186 阅读 · 0 评论 -
CF197B Limit
题目撞名题目大意:给出两个函数 P(x),Q(x)P(x),Q(x)P(x),Q(x).P(x)=a0×xN+a1×xN−1+a2×xN−2⋯aN−1×x+aNP(x)=a_0 \times x^N+a_1 \times x^{N-1}+a_2 \times x^{N-2} \cdots a_{N-1} \times x+a_NP(x)=a0×xN+a1×xN−1+a2×xN−2⋯aN...原创 2020-02-14 19:54:55 · 137 阅读 · 0 评论 -
CF1301C Ayoub's function
本题结论题,所以就不放前置芝士了.具体做法先将最终的答案分为两部分,区间(开始于结束为止不同)和点,点的个数非常显然就是M,于是要计算区间的个数,可以发现如果直接计算有多少合法区间很麻烦,所以用总共的区间数N∗(N−1)2\frac{N*(N-1)}{2}2N∗(N−1),减去没有的部分,可以发现这M个1可以将这个区间分成M+1段0(长度可以为0),两段之间有1的0之间不会相互影响,所以没有...原创 2020-02-14 15:04:47 · 173 阅读 · 0 评论 -
CF1303C Perfect Keyboard
前置芝士图的遍历:通过DFS或者BFS遍历全图.前向星:用来存边,但是在本题用也可以用一个二维数组解决.具体做法先从判断YES和NO开始,可以发现如果一个字母与三个及以上不同的字母相邻时肯定是不合法的,每个字母与左右的字母连一条边以后如果产生一个长度大于2的环也是不合法的.所以最终合法的图中没有环,没有一个点连出两条以上的边,自然可以发现这就是一堆链了,所以可以从出度为1或0的点开始遍...原创 2020-02-13 11:44:38 · 333 阅读 · 0 评论 -
P2468 [SDOI2010]粟粟的书架
这道题分为两个部分Part1(R,C≤200R,C\le 200R,C≤200,M≤200000M \le 200000M≤200000)前置芝士前缀和(后缀和,二维前缀和):可以预处理一下数据.二分查找:可以在较短的时间内找出答案.具体做法可以发现R,CR,CR,C不大,只有200200200,于是可以先预处理出一个数组a[i][j][k]a[i][j][k]a[i][j][k]...原创 2020-02-12 19:28:10 · 113 阅读 · 0 评论 -
P3168 [CQOI2015]任务查询系统
介绍本题的两种做法:方法1前置芝士线段树:一个很重要的数据结构.树状数组:一个很重要的数据结构.具体实现区间修改,单点查询很容易就会想到树状数组了,至于查询前k个数的和又可以丢给权值线段树去干,所以第一种很显然的方法就是树状数组套一个线段树实现.代码#include<bits/stdc++.h>#define REP(i,first,last) for(int i...原创 2020-02-08 10:54:13 · 197 阅读 · 0 评论 -
SP10628 COT - Count on a tree
主席树的综合运用题.前置芝士可持久化线段树:其实就是主席树了.LCA:最近公共祖先,本题需要在log2N\log_2Nlog2N及以内的时间复杂度内解决这个问题.具体做法主席树维护每个点到根节点这一条链上不同树出现的次数,然后发现这个东西是可以相减的,于是这条链上每个数出现的次数就变成了sum[u]+sum[v]−2∗sum[LCA(u,v)]sum[u]+sum[v]-2*su...原创 2020-01-31 19:22:07 · 148 阅读 · 0 评论 -
P1383 高级打字机
一道非常基础的可持久化数据结构题.前置芝士可持久化线段树:实现的方法主要是主席树.具体做法这个基本就是一个模板题了,记录一下每一个版本的字符串的长度,在修改的时候就只要在上一个版本后面加上一个字符,撤销操作就之久回到x个版本前就好了.用主席树维护,每次修改和查询都是log2N\log_2Nlog2N的,且可以做到在线.代码#include<bits/stdc++.h>...原创 2020-01-31 16:07:25 · 132 阅读 · 0 评论 -
P3078 [USACO13MAR]扑克牌型Poker Hands
本题有O(N)O(N)O(N)的优秀做法,但是因为在考场上不一定能想到,就来分享一种O(Nlog2N)O(N\log_2N)O(Nlog2N)的做法.虽然有点慢,但是可以过.前置芝士线段树:提高组及以上必备内容,不会的同学可以学习一下.具体做法只要会线段树就珂以了,是不是很简单.先考虑贪心,连续的一定是一次去掉,不可能分成多次去取.于是答案就是每一行连续的段数之和.如图,第...原创 2020-01-25 18:22:55 · 285 阅读 · 0 评论 -
P2824 [HEOI2016/TJOI2016]排序
一道十分神奇的线段树题,做法十分的有趣.前置芝士1.线段树:一个十分基础的数据结构,在这道题中起了至关重要的作用.2.一种基于01串的神奇的二分思想:在模拟赛中出现了这道题,可以先去做一下,这样可能有助于理解.具体做法可以发现sort是非常慢的,每次多要O(Nlog2N)O(N\log_2N)O(Nlog2N),最后的时间复杂度为O(MNlog2N)O(MN\log...原创 2020-01-15 20:02:14 · 106 阅读 · 0 评论 -
P2060 [HNOI2006]马步距离
一道神奇的BFS前置芝士1.BFS(DFS):这次真的不是我懒,我也不知道DFS怎么写.2.STL中的set或者map.具体做法数据范围非常大,直接BFS肯定是一片黑色(指TLE,MLE),直接贪心又有可能会出一些莫名其妙的问题,所以,大范围贪心,小范围BFS的思路就出现了(不要问我是怎么出现的).如这样一张图,要从红点到蓝点,可以先顺着橙色点的路径到绿色的框中(框的...原创 2020-01-09 14:00:07 · 143 阅读 · 0 评论 -
P2845 [USACO15DEC]Switching on the Lights 开关灯
USACO的又一道搜索题前置芝士1.BFS(DFS)遍历:用来搜索.(因为BFS好写,本文以BFS为准还不是因为作者懒)2.链式前向星,本题的数据比较水,所以邻接表也可以写,但是链式前向星它不香吗.具体做法对于一个点,它可能有不止一个房间,虽然可以开一个[x1][y1][x2][y2][x_1][y_1][x_2][y_2][x1][y1][x2][y2]的邻接矩...原创 2020-01-09 08:01:51 · 261 阅读 · 0 评论 -
P3072 [USACO13FEB]周长Perimeter
USACO的题目,感觉还是挺神奇的.前置芝士1.DFS(BFS)遍历:用来搜索(因为DFS好写,本文以DFS为准还不是因为作者懒)2.STL中的set(map)的基本用法:数据很大,不能直接存.具体做法因为不能把草堆围起来造成的周长记录起来所以不能再草堆中搜索,需要再这个草堆外面绕着搜索这样就不会将内部的周长记录下来了.如这样一张图它的周长是(红色部分):于是需要...原创 2020-01-08 15:25:19 · 279 阅读 · 0 评论 -
P3820 小D的地下温泉
这道题的考点比较多.前置芝士1.BFS(DFS),这两种算法在这道题中并没有什么特别突出的地方,基本就是自己看心情写(本文以DFS为准,所以我心情是好是坏呢?)2.连通块,可以将每一个温泉看作一个连通块,这样就变成了一个图上问题.3.并查集,在判断图中元素是否相连时需要用到(具体下文会讲到).具体做法先用搜索将每个温泉(连通块),处理出来,并且统计出每个连通块的大小.在...原创 2020-01-07 20:31:57 · 135 阅读 · 0 评论 -
P2568 GCD
看到这是一道紫题还是和gcd有关的才点进来(毕竟数论只会gcd).前置芝士(为了保证绝大多数人能看懂,有一些非常基础的前置芝士,如果已经了解可以pass)质数(又称素数):因数只有1和本身,但是很特殊的1不是一个质数.gcd:欧几里得算法,又称辗转相除法,可以在约为O(LogN)的时间复杂度内求出两个数的最大公约数(N为两个数中大的那个数,在两数为相邻的斐波那契数时最慢,具体不证明其实...原创 2020-01-05 10:28:36 · 114 阅读 · 0 评论 -
P3740 [HAOI2014]贴海报
区间覆盖怎么能不用线段树数呢(线段树又短又好写).可以发现每次覆盖的是一个区间,但是这个区间很大所以需要离散化.如果直接离散化会出现一些很奇怪的情况:如这样一个图,在普通的离散化后会变成:红色的海报本来是可以看见的但是在离散化就看不见了,所以,在离散化时,如果两个相邻的值的差不是1(即中间有缝隙),需要在中间空一个位置出来.下面放上完整的代码:#include<bits/std...原创 2020-01-04 13:25:20 · 116 阅读 · 0 评论 -
P3531 [POI2012]LIT-Letters
求逆序对怎么能少了线段树呢.建一棵权值线段树,倒着将每个数放入,每放入一个数之前先查询这颗线段树内有多少比它小的数,最后统计起来(注意用long long),废话不多说,直接上代码.#include<bits/stdc++.h>#define rap(i,first,last) for(int i=first;i<=last;++i)#define sing(i,firs...原创 2020-01-04 10:20:17 · 136 阅读 · 0 评论 -
线段树学习笔记
线段树是什么线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。以上内容摘抄自百度百科(虽然这句话并没有讲到什么,只是知道了线段树NB)...原创 2020-01-04 09:38:35 · 380 阅读 · 0 评论 -
P2253 好一个一中腰鼓!
就这道题的理论难度来说绿题是有点低了,但是这道题的实际难度来看,顶多黄题,所以建议加强数据或出数据升级版.暴力的方法想必都会,所以来讲一下正解.看到标签是线段树,所以正解就是线段树了(毫无问题的逻辑).这颗线段树上的节点如果只记录区间中的最长的符合条件的区间长度想必是无法转移的,所以需要记录一下的量:当前区间最左端开始的最长的符合条件的区间的长度当前区间最右端开始的最长的符合条件的区间...原创 2020-01-02 20:05:37 · 72 阅读 · 0 评论