12 2018 档案

摘要:题目大意: 题面传送门 还是一道三维偏序题 每次操作都可以看成这样一个三元组 $<x,w,t>$ ,操作的位置,权值,修改时间 一开始的序列看成n次插入操作 我们先求出不删除时的逆序对总数量,再统计每次删除元素时,减少的逆序对数量 然后就是三维偏序裸题了吧,第一维时间,第二维操作位置,第三维权值,用 阅读全文
posted @ 2018-12-31 20:03 guapisolo 阅读(244) 评论(0) 推荐(0)
摘要:题目大意: 题面传送门 三维偏序裸题 首先,把三元组关于$a_{i}$排序 然后开始$CDQ$分治,回溯后按$b_{i}$排序 现在要处理左侧对右侧的影响了,显然现在左侧三元组的$a_{i}$都小于等于右侧 而$c_{i}$这一维需要用权值树状数组维护 归并排序时,已知左侧右侧两个指针分别是$i,j 阅读全文
posted @ 2018-12-31 19:41 guapisolo 阅读(191) 评论(0) 推荐(0)
摘要:题目大意: 给你一棵树,边有边权,点有点权,有很多次询问,求点权$\in[l,r]$的所有节点到某点$x$的距离之和,强制在线 感觉这个题应该放在动态点分之前做= = 套路方法和动态点分是一样的 每次询问,从$x$开始,沿着点分树的树链向上统计,计算当前点的点分树的答案,然后去掉包含$x$的那棵点分 阅读全文
posted @ 2018-12-31 15:00 guapisolo 阅读(210) 评论(0) 推荐(0)
摘要:烁烁的游戏 题目大意: 给你一棵$n$个节点的树,有$m$次操作,询问某个节点的权值,或者将与某个点$x$距离不超过$d$的所有节点的权值都增加$w$ 动态点分裸题 每个节点开一棵权值线段树 对于修改操作,它从$x$开始,像一个涟漪扩散,对它周围与它距离$\leq d$的所有节点造成$w$点贡献 为 阅读全文
posted @ 2018-12-31 09:43 guapisolo 阅读(208) 评论(0) 推荐(0)
摘要:题目大意: 略 题面传送门 怎么看也是一道$duliu$题= = 先推式子,设$dp[x]$表示到达$x$点到达1节点的最小花费 设$y$是$x$的一个祖先,则$dp[x]=min(dp[y]+(dis[x]-dis[y])*p[x]+q[x])$,且$dis[x]-dis[y] \leq lim[ 阅读全文
posted @ 2018-12-28 19:47 guapisolo 阅读(331) 评论(0) 推荐(0)
摘要:题目大意:略 传送门 硬是把两个题拼到了一起= = $dijkstra$搜出单源最短路,然后$dfs$建树,如果$dis_{v}=dis_{u}+e.val$,说明这条边在最短路图内,然后像$NOIP2018 D2T1$那样的思路,贪心地选出当前节点的所有子节点里,未被访问过的编号最小的节点递归,回 阅读全文
posted @ 2018-12-27 19:46 guapisolo 阅读(160) 评论(0) 推荐(0)
摘要:题目大意: 求树上长度为K的路径里,边数的最小值,$n<=10^{5}$ 树分治入门题= = 为了防止出现不合法的路径进入统计,在每次选择的重心周围的节点进行统计 开一个桶,记录当前长度的路径下,边数的最小值 每次枚举当前子树内每个节点,用桶内的信息更新答案 枚举完当前子树内所有的节点之后,再把这些 阅读全文
posted @ 2018-12-27 15:45 guapisolo 阅读(194) 评论(0) 推荐(0)
摘要:题目大意: 从前有一棵无向树,树上边权均为$0$或$1$,有一个采药人,他认为如果一条路径上边权为$0$和$1$的边数量相等,那么这条路径阴阳平衡。他想寻找一条合法的采药路径,保证阴阳平衡。然后他发现采药很累,于是乎他需要保证这条路径上有一个中转站,路径两个端点到中转站的路径都需要阴阳平衡 $n \ 阅读全文
posted @ 2018-12-27 14:36 guapisolo 阅读(244) 评论(0) 推荐(0)
摘要:题目大意:给你一颗树,你有$m$元钱,每个节点都有一种物品,价值为$w$,代价为$c$,有$d$个,如果在$u$和$v$两个城市都购买了至少一个物品,那么$u,v$路径上每个节点也都必须买至少一个物品 单调队列数组开小了调了2h 通过这道题,本蒟蒻终于$get$到了树上带权背包的正确姿势 合并背包的 阅读全文
posted @ 2018-12-26 18:38 guapisolo 阅读(273) 评论(0) 推荐(0)
摘要:题目大意: 太长了略 洛谷题面传送门 嗯,数学题 感觉考试要是出这种题我就死翘翘了【逃 不用想都知道要$LCT$维护断边连边,但询问该如何处理呢 利用题目给出的公式 $f(x)=\sum_{i=0}^{inf} \frac{f^{(i)}(x_{0})(x-x_{0})^{i}}{i!}$ 发现,同 阅读全文
posted @ 2018-12-24 21:21 guapisolo 阅读(168) 评论(0) 推荐(0)
摘要:题目大意: 很显然是一个$LCT$题= = 操作1,2都是$LCT$基本操作,操作3打个标记即可 重点就是操作4该如何在$LCT$里维护,我们先不管期望的问题,只需要把总和$/(sum*(sum+1)/2)$即可 我们把链拎出来,摊平 每个节点的答案,就是它(左侧节点数+1)*(右侧节点数+1)*它 阅读全文
posted @ 2018-12-24 17:03 guapisolo 阅读(216) 评论(0) 推荐(0)
摘要:题目大意:略 涂色方式明显符合$LCT$里$access$操作的性质,相同颜色的节点在一条深度递增的链上 用$LCT$维护一个树上集合就好 因为它维护了树上集合,所以它别的啥都干不了了 发现树是静态的,可以用$dfs$序搞搞 把问题当成树上节点涂色会很麻烦 但只有相邻的不同颜色节点才会对答案产生影响 阅读全文
posted @ 2018-12-22 20:31 guapisolo 阅读(237) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个序列,支持: 1.合并两个相邻的数为一个新的数 2.在某个位置插入一个数 3.查询一个区间的任意子区间极差的最大值 4.查询一个区间的任意子区间极差的最小值 前两个操作可以用$splay$轻松实现 第三个操作,求区间的子区间极差最大值,额外维护子树内元素最大值最小值即可 第四 阅读全文
posted @ 2018-12-22 11:06 guapisolo 阅读(292) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个括号序列,支持 1.区间修改为同一种括号 2.区间内所有括号都反转 3.翻转整个区间,括号的方向不变 4.查询把某段区间变为合法的括号序列,至少需要修改多少次括号 给跪了,足足$de$了$3h$ 感觉这道题的思维难度比维修数列高多了 前三个操作都非常好搞,都是区间打标记 注意 阅读全文
posted @ 2018-12-21 21:02 guapisolo 阅读(169) 评论(0) 推荐(0)
摘要:题目大意: 给你一张无向图,求1到其他节点 不经过最短路的最后一条边 的最短路长度,保证每个节点的最短路走法唯一 神题,$USACO$题目的思维是真的好 先$dijkstra$出最短路树 对于每个节点,符合条件的走法必须满足,不经过它和它父亲之间的连边 显然只能从它的某个子节点走向它,就像绕了一圈 阅读全文
posted @ 2018-12-20 21:21 guapisolo 阅读(235) 评论(0) 推荐(0)
摘要:题目大意:略 一定范围内求最大值,考虑二分答案 设现在选择的答案是$mid$,$max \left \{ \frac{yi+qj}{xi+pj} \right \} \geq mid $ 展开可得,$(yi-mid*xi)+(qj-mid*pj)>=0$,只要存在$i,j$使得这个式子成立,说明$m 阅读全文
posted @ 2018-12-20 19:02 guapisolo 阅读(227) 评论(0) 推荐(0)
摘要:题目大意: 你可以在一个串的开头或者末尾加入一个字符,或者把当前整个串$reverse$,然后接在前面或者后面,求达到目标串需要的最少操作次数 对目标串建出$PAM$ 定义$dp[x]$表示当前在回文树的x节点,拼凑出这个节点表示的回文串所需要的最小操作次数 $fa_{x}$表示沿着树边指向它的父亲 阅读全文
posted @ 2018-12-20 14:59 guapisolo 阅读(226) 评论(0) 推荐(0)
摘要:题目大意:略 先建出$PAM$ 因为双倍回文串一定是4的倍数,所以找出$PAM$里所有$dep$能整除4的节点 看这个串是否存在一个回文后缀,长度恰好为它的一半,沿着$pre$链往上跳就行了 暴跳可能会$T$,所以倍增了跳 如果被卡空间,可以把trs数组当成倍增数组 阅读全文
posted @ 2018-12-19 12:52 guapisolo 阅读(210) 评论(0) 推荐(0)
摘要:题目大意:让你维护一个字符串,支持在开头结尾插入字符,以及查询本质不同的回文串数量以及回文串总数量 开头结尾都维护一个$last$指针,如果插入新字符后,整个串是一个回文串,就把另一个$last$赋值成当前的$last$ 为什么这样做就是正确的呢? 首先,对于这道题而言,一个回文串开头/结尾是等价的 阅读全文
posted @ 2018-12-18 20:31 guapisolo 阅读(292) 评论(0) 推荐(0)
摘要:题目大意:略 令$ION2017=S,ION2018=T$ 对$S$建$SAM$,每次都把$T$放进去跑,求出结尾是i的前缀串,能匹配上$S$的最长后缀长度为$f_{i}$ 由于$T$必须在$[l,r]$上匹配,设现在能匹配的长度为$len$,在后缀自动机的$x$点,添加一个字符$c$,则$trs[ 阅读全文
posted @ 2018-12-18 16:01 guapisolo 阅读(499) 评论(0) 推荐(0)
摘要:题目大意: 给你一堆模式串和文本串 对于每个文本串,我们可以把它不可重叠地拆分成很多子串,如果拆分出的串作为子串出现在了任何一个模式串中,我们称它是“眼熟的”,我们必须保证“眼熟的”子串总长度不小于文本串的90%,现在定义一个数$L$,表示拆分出的子串的最小长度,求每个文本串的$L$的最大值 神题 阅读全文
posted @ 2018-12-14 17:03 guapisolo 阅读(202) 评论(0) 推荐(0)
摘要:题目大意: 给你一个字符串,求其中回文子串的长度*出现次数的最大值 明明是PAM裸题我干嘛要用SAM做 回文子串有一个神奇的性质,一个字符串本质不同的回文子串个数是$O(n)$级别的 用$manacher$的思想分析一下,$maxright$指针向右扩展才会产生新的回文串 其它的回文串都根据之前求得 阅读全文
posted @ 2018-12-14 11:59 guapisolo 阅读(287) 评论(0) 推荐(0)
摘要:题目大意: 懒得概括了 神题,搞了2个半晚上,还认为自己的是对的...一直调不过,最后终于在jdr神犇的帮助下过了这道题 线段树合并该是这道题最好理解且最好写的做法了,貌似主席树也行?但线段树合并这个算法实在是太优美了 一个模式串从左到右为开头进行匹配,如果在前面已经匹配成功了,后面就算能匹配成功也 阅读全文
posted @ 2018-12-13 19:55 guapisolo 阅读(452) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个文本串,支持在末尾插入字符,以及查询某个模式串在其中出现了多少次 什么sd题 $LCT$动态维护$parent$树,再用[BJOI2014]大融合的方法维护子树大小就行了 不要像我一样把LCT打错了 另外猫琨说这道题字符集开到2就行了,数据里只有A和B 阅读全文
posted @ 2018-12-11 18:34 guapisolo 阅读(212) 评论(0) 推荐(0)
摘要:题目大意: 给你一个字符串S,求关于每个位置x的识别串T的最短长度,T必须满足覆盖x,且T在S中仅出现一次 神题 以节点x为结尾的识别串,必须满足它在$parent$树的子树中只有一个$endpos$节点 若令$fa=pre_{x},L=dep_{fa},R=dep_{x}$ 1.对于以$i\in[ 阅读全文
posted @ 2018-12-11 18:25 guapisolo 阅读(190) 评论(0) 推荐(0)
摘要:题目大意: 给你$n$个大串和$m$个询问,每次给出一个字符串$s$询问在多少个大串中出现过 好神的一道题 对$n$个大串建出广义$SAM$,建出$parent$树 把字符串$s$放到$SAM$里跑,找到能表示字符串$s$的节点$x$ 问题转化为在$parent$树中,$x$节点的子树内,有多少个编 阅读全文
posted @ 2018-12-10 18:48 guapisolo 阅读(175) 评论(0) 推荐(0)
摘要:题目大意: 给你一个字符串,求字典序第$k$小的串是什么 先建出$sam$和$parent$树 在$trs$图中,从根走向节点x的每一条路径都是x能代表的一个字符串 $parent$树以 某个节点为根的子树内$endpos$节点的数量,表示这个节点 能代表的所有字符串 正序作为后缀在所有前缀串中出现 阅读全文
posted @ 2018-12-10 15:51 guapisolo 阅读(191) 评论(0) 推荐(0)
摘要:题目大意:求一个字符串中形如$ABA$的串的数量,其中$B$的长度是给定的 有点像[NOI2016]优秀的拆分这道题 先对序列打差分,然后离散,再正反跑$SA$,跑出$st$表 进入正题 $ABA$串有一个神奇的性质 令$A$串长度是$x$ 如果我们选取了一个位置$i$,再选取一个位置$i+x+m$ 阅读全文
posted @ 2018-12-09 15:07 guapisolo 阅读(197) 评论(0) 推荐(0)
摘要:题目大意:求$\sum_{1\leq i<j \leq N} suf_{i}+suf_{j}-2\cdot lcp(suf_{i},suf_{j})$ 先是后缀数组打错了,又是把+=打成了=,我是zz 我的做法比较奇葩.. 转化式子,原式=$\sum_{i=1}^{n-1}(i+1)\cdot i- 阅读全文
posted @ 2018-12-08 20:42 guapisolo 阅读(195) 评论(0) 推荐(0)
摘要:题目大意:给你一个n*m的网格图,求哈密顿回路数 插头DP板子题,搞了一天终于过了 阅读全文
posted @ 2018-12-05 20:21 guapisolo 阅读(195) 评论(0) 推荐(0)
摘要:洛谷传送门 题目大意:太长略 每新加入一个僵尸,容易得到方程$ans[i]=max{\frac{sum_{i}-sum_{j-1}}{s_{i}+d(i-j)}}$ 即从头开始每一段僵尸都需要在规定距离内被消灭 展开式子,可得$ans[i]=max{\frac{sum_{i}-sum_{j-1}}{ 阅读全文
posted @ 2018-12-02 14:44 guapisolo 阅读(165) 评论(0) 推荐(0)
摘要:洛谷传送门 题目大意:让你把序列切割k次,每次切割你能获得 这一整块两侧数字和的乘积 的分数,求最大的分数并输出切割方案 神题= = 搞了半天也没有想到切割顺序竟然和答案无关...我太弱了 证明很简单,就是乘法分配律,把式子展开就行了 定义$s_{i}$为序列$a$的前缀和,定义$f[k][i]$表 阅读全文
posted @ 2018-12-01 19:14 guapisolo 阅读(158) 评论(0) 推荐(0)
摘要:有一些题比较水没什么新意,就懒得写长题解了 忘了日期的 BZOJ 1096 [ZJOI2007]仓库建设 (斜率优化DP) 先展开式子,移项,发现$x$递增,斜率$k$也是递增,用队列维护个下凸包就行了 1 #include <cmath> 2 #include <queue> 3 #include 阅读全文
posted @ 2018-12-01 16:42 guapisolo 阅读(194) 评论(0) 推荐(0)