02 2019 档案
摘要:题解:$ dp[x][0/1/2] $分别表示结点颜色为绿,蓝,红时子树里面的最大最小绿色点的个数 转移就直接儿子结点转移即可 1864: [Zjoi2006]三色二叉树 Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列。 仅有一行,不超过500000个字符
阅读全文
摘要:题解: 我们考虑 $ d>0 $ 然后对于每一个负数 只有一次从负数到正数的变化 所以我们考虑 把每一个临界点的修改都拿出来暴力改掉 然后维护答案就行 4127: Abs Description 给定一棵树,设计数据结构支持以下操作 1 u v d 表示将路径 (u,v) 加d 2 u v 表示询问
阅读全文
摘要:题解: LCT+并查集 查询环上元素个数 4998: 星球联盟 Description 在遥远的S星系中一共有N个星球,编号为1…N。其中的一些星球决定组成联盟,以方便相互间的交流。但是,组成 联盟的首要条件就是交通条件。初始时,在这N个星球间有M条太空隧道。每条太空隧道连接两个星球,使得它们能 够
阅读全文
摘要:题解: 我们维护前缀异或和 求出区间[l,r]范围内出现奇数次个数的异或和 然后用树状数组维护区间[l,r]范围内 出现过的数字的异或和 然后两者异或起来就是答案 5476: 位运算 Description 有一个长为n的自然数序列Ai。 有m次询问,每次询问区间[l,r]中出现次数为偶数的数的异或
阅读全文
摘要:题解: 答案贡献分为两部分 第一部分为 b是a的祖先是 $ ans=min(dep[p]-1,k)*(num[p]-1) $ 第二部分为 b是a的子孙节点 对于dfs建深度主席树 每个点的权值为子孙节点个数 然后查询对应dfs序区间 及相应的深度范围 3653: 谈笑风生 Description 设
阅读全文
摘要:题解: 考虑按照元素升序加入 所以对位置在其后的元素LIS无影响 然后从前面位置的最大值转移过来就行 ,,,,平衡树无脑模拟 3173: [Tjoi2013]最长上升子序列 Description 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入
阅读全文
摘要:题解: 上一题的系列套路题 但是上一题 我们用n*log^3(n)水过了 这题6s明显是不可行的 需要优化一下复杂度 我们考虑线段树合并 维护每一位输入为0/1的时候输出 然后做区间合并 这样子平方转移依然是3个log的 我们想想二进制优化 让每一位对应unsigned long long每一二进制
阅读全文
摘要:题解: LCT死于卡常....迫不得已写了树剖+线段树 思路很简单 按位分解 对于每一位 考虑这条路径上从右往左第一个0出现的位置 然后判断这一位经过这条路径后是0还是1 统计每一位贡献即可 2908: 又是nand Description 首先知道A nand B=not(A and B) (运算
阅读全文
摘要:题解: 我们考虑一条链时 答案为链上和 路径上有环时 这个环上的点都会产生贡献 然后我们可以 用并查集来维护LCT 有环时直接缩成一个点即可 2959: 长跑 Description 某校开展了同学们喜闻乐见的阳光长跑活动。为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到
阅读全文
摘要:题解: $$ ans=F\left ( \prod _{i=l}^{r}a_i \right ) $$ $$ =(p_i-1){p_i}^{k_i-1}*.....*(p_j-1){p_j}^{k_j-1} $$ $$={p_i}^{k_i}*.....*{p_j}^{k_j}*(\frac{p_i
阅读全文
摘要:题解:神贪心.......我们考虑对于每条边的选择 假设某方对于当前这条边的端点都不选择 那么其获得-v的价值 假设某方对于当前这条边的端点只选择一个 那么其获得0的价值 假设某方对于当前这条边的端点选择两个 那么其获得v的价值 综上可知 我们可以把这条边的价值分成两份 两端点各得一份 这样把边权变
阅读全文
摘要:题解:我们考虑按秩合并 保证每个点往上跳logn层 然后并查集维护就行 4668: 冷战 Description 1946 年 3 月 5 日,英国前首相温斯顿·丘吉尔在美国富尔顿发表“铁 幕演说”,正式拉开了冷战序幕。 美国和苏联同为世界上的“超级大国”,为了争夺世界霸权,两国及其 盟国展开了数十
阅读全文
摘要:题解: 对于每个点 表示的区间做个差分 在L[I]位置插入 R[i]+1的位置删除 然后对离散化后的C[I]用线段树维护区间第K大即可 2161: 布娃娃 Description 小时候的雨荨非常听话,是父母眼中的好孩子。在学校是老师的左右手,同学的好榜样。后来她成为艾利斯顿第二 代考神,这和小时候
阅读全文
摘要:题解: KDtree裸题 用堆维护离得最近的K个点 就行了 2626: JZPFAR Description 平面上有n个点。现在有m次询问,每次给定一个点(px, py)和一个整数k,输出n个点中离(px, py)的距离第k大的点的标号。如果有两个(或多个)点距离(px, py)相同,那么认为标号
阅读全文
摘要:题解: 提高组系列难度题.....竟然各种假贪心 瞄了网上结论 竟然 n%(k-1)不足1要补齐....orz这个真没想到 涨知识涨知识.... 补齐以后直接类似合并果子 堆贪心就行了 4198: [Noi2015]荷马史诗 Description 追逐影子的人,自己就是影子。 ——荷马 Allis
阅读全文
摘要:题解: 一眼看过去 大讨论题? 什么奇偶环讨论下? 然后仔细考虑一下 我们对于所有的边分成树边和非树边 对于所有的非树边 能形成奇环的在路径上的边+1 形成偶环的路径上-1 然后看边上权值等于奇环数量的就是可以被选择的.....不用其他高级数据结构维护 看了discuss好像带log会T...那就老
阅读全文
摘要:题解: 初步想法....树剖+线性基 复杂度不对gg 再考虑 直接倍增 类似求LCA合并线性基也是可以的 ....然后贪心求最大值即可 4568: [Scoi2016]幸运数字 Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一。每座
阅读全文
摘要:题解:神题.....一眼看过去完全不知道怎么维护字典序最大 突破口在....离线所有询问从左往右加入后缀 然后对于三种情况分别讨论 当$ i<j $ 若$ rank2[i]>rank2[j] $ 那么i最优性继续保持 若$ rank2[i]<rank2[j] $ 这里分情况讨论的是 $ i+lcp(
阅读全文
摘要:题解: 语文题???? 上面说的一段代码 告诉你的是 节点编号顺序与dfs序顺序一致 也就是你 dfs序以后编号就是[1,n] 根据这个特性 那么我们只需要维护每个叶子节点到查询v的距离即可 那么我们只需要离线所有查询 然后对子树修改即可 用线段树来维护区间加和区间最小值就行
阅读全文
摘要:题解: 这题很容易绕绕绕 我们考虑分治一下 按x坐标排序 然后对于每一段的两部分都按y排序 左右两边都维护一个单调栈(这个地方栈的顺序要想清楚 不然就会和我一样自闭一小时) 然后考虑右边对左边的贡献就行了 4237: 稻草人 Description JOI村有一片荒地,上面竖着N个稻草人,村民们每年
阅读全文
摘要:题解: 线段树优化建图 分割查询区间 建源点优化边集 然后跑拓扑排序即可 细节较多 4383: [POI2015]Pustynia Description 给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数
阅读全文
摘要:题解: 我们考虑第j个位置从第i个位置的转移 $$ i< j $$ $$ a[i]< a[j] $$ $$ i-a[i]\leqslant j-a[j] $$ 看上去是个三维偏序 然后实质上满足2,3式 1式恒成立 然后就是二维偏序问题 我们考虑 直接对a数组排序 然后线段树做转移(当然树状数组也是
阅读全文
摘要:题解:对于标准作文库建广义sam 预处理出查询串每个位置往前能匹配的最远位置 二分答案L 然后设dp方程为 $$ dp[i]=max(dp[i-1],max(i-j+dp[j])\left ( i-L\geq j\geqslant i-num[i] \right )) $$ 然后我们用单调队列来维护
阅读全文
摘要:题解:先差分 后离散化 然后枚举A串长度 后缀数组+ST表 维护(i,j)往前匹配的长度和往后匹配的长度 然后搞一搞就行了 (注意枚举的时候长度的上下界 2119: 股市的预测 Description 墨墨的妈妈热爱炒股,她要求墨墨为她编写一个软件,预测某只股票未来的走势。股票折线图是研究股票的必备
阅读全文
摘要:题解:......推了一晚上的式子 ....zjoi签到题.....感觉自己废了啊 首先看懂题目代码在干啥 ...分析一下 他求的是后缀和 也就是对于查询[l,r]你需要看第l-1和第r位置 被修改次数和为偶数次的概率 然后用二维平面点表示 维护每个点出现偶数次的概率 对于l=1是需要考虑 整个序列
阅读全文
摘要:题解:首先我们忽略<=k这个条件 可以得出每形成一个环就需要删掉一条边 那么并查集搞一下 就可以得出答案 那么对于k的限制 我们先把两点都大于k的边处理掉 然后剩下的继续并查集搞一下 就完了 3060: [Poi2012]Tour de Byteotia Description 给定一个n个点m条边
阅读全文
摘要:题解:求最大值 线性基基本操作....求次大值 等于最大值异或上线性基能表示的最小值 4269: 再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值。 给定N个数,你可以在这些数中任意选一些数出来,每
阅读全文
摘要:题解: 考虑离线 对于每个数都有一个存在时间段 我们以时间段建线段树 因为线性基不允许删除元素 然后我们只需要把对应时间段的元素加入 这样就能避免删除问题 然后就是普通操作了(第一次写链表版本的线性基 学到了学到了!!!!! 4184: shallot Description 小苗去市场上买了一捆小
阅读全文
摘要:题解: q次查询每次查询k个点 k的总和不超过1e5 那就->虚树 这个题分为两部分 前面先对每次查询的点建虚树 其次计数 对于新树上的每个关键点(查询点) 他能影响的m的范围 必然大于以r为根的祖先节点的个数 然后我们单独考虑每个节点的贡献为 当前集合个数减去其祖先节点的个数 然后我们考虑把每个点
阅读全文
摘要:题解: 线段树区间合并 只需要维护两端 再选正面或反面时4种情况是否满足情况 合并的话 考虑左儿子的右端点 右儿子的左端点的大小关系 然后合并 3526: [Poi2014]Card Description 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b
阅读全文
摘要:题解: 方法一 我们采用树链剖分+线段树的做法 对于操作2,3都是基本的树剖操作 唯一不同的是换根 对于换根我们分情况讨论 若查询的节点是当前根的lca节点 那么查询的是 查询节点在根-节点路径上的儿子节点的子树的补集 (可以手画一下 若查询的节点不是lca那么直接查询原树的子树范围 若查询的节点是
阅读全文
摘要:题解: 水题...但是看错题意了 将'<='转化成最短路连边即可 1731: [Usaco2005 dec]Layout 排队布局 Description Like everyone else, cows like to stand close to their friends when queui
阅读全文
摘要:题解:把前缀和丢进trie树 维护以i结尾的区间最大异或和pre[i] 把后缀和丢进tire树 维护以i起始的区间最大异或和suf[i] 然后枚举前半部分 查询后半部分最大值 我们可以通过st表来维护最大值 然后取max即可 4260: Codechef REBXOR Description Inp
阅读全文
摘要:题解:神.....神题 求中位数->区间第k大->主席树 好了进死胡同了 因为没办法差分区间和区间 我们再考虑 对于中位数...那我们把大于等于这个数的置1 小于这个数置-1 然后查询区间和是否大于等于0来check 根据这个性质 我们考虑二分中位数(因为具有单调性...很明显证明 但是每次二分都去
阅读全文
摘要:题解: 这个出题人 就应该祭天....什么jb题意啊 知道题意以后 就直接把所有反串插入到trie树中 然后贪心从子树小的进行dfs遍历标号 答案就是每个点与父亲标号差值的和 注意一定要进行压缩 即除根以外都要是关键节点 4567: [Scoi2016]背单词 Description Lweb 面对
阅读全文
摘要:题解:难点在于建图 首先有个很显然的思路 就是 $$ i\rightarrow i+a[i]+1\left ( i+a[i]<=n \right ) $$ 边权为0 $$ i\rightarrow n+1\left ( i+a[i]>n \right ) $$ 边权为 $ i+a[i]-n $ 然后
阅读全文
摘要:题解: LIS的变式版本 我们用两颗线段树和一个数组来维护 dp[i]表示以i结尾的最长满足条件的序列 转移的话 分情况转移 他可以是从 大于 小于 等于三个方向转移过来 然后取max即可 更新的话 已知dp[i]可以推出下一个符号 然后在对应的数据结构中更新即可 2090: [Poi2010]Mo
阅读全文
摘要:题解:n的范围 告诉这题做法是线性的 .....如果没有d这个操作 那好像就直接双指针扫过去就行了 现在有了d的限制 我们只需要把一段区间里面连续长度为d且和最大那一段赋值为0即可 这样我们可以通过单调队列实现 综合两者在双指针扫描同时 维护合法区间的最大连续d的和 然后check即可 4385:
阅读全文
摘要:题解 orz最小生成树 查询[l,r]区间需要花费Cij 那么我们假设有n+1个状态分别表示前缀查询 那么我们对于查询[i,j]等价于(-1,j)连边 因为我们可以在Cij花费下 实现两个前缀状态的转移 又已知 我们知道所有前缀状态时 可以轻易找出每个位置的状态 所以只需要连边求MST即可 3714
阅读全文
摘要:题解:树链剖分裸题 2836: 魔法树 Description Input Output Sample Input 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 Sample Output 3 3 2
阅读全文
摘要:题解: 这个题 出发点显然在 在左/右 加入一个元素对答案产生的贡献 首先大方向上 离线区间考虑单点贡献 我们选择莫队算法 问题是我们如何去处理转移的问题 $$ \sum_{i=l}^{r}min(a[i....r]) $$这个很容易得到 然后有个很显然的结论 若pos为区间{l,r]的最小值的出现
阅读全文
摘要:题解: 对于每个前缀 对于每个位置一直next下去 找到第一个不满足的情况 然后用长度减去不满足的长度 即为每个位置的答案 具体看代码吧 就是Next数组的应用吧 1511: [POI2006]OKR-Periods of Words Description 一个串是有限个小写字符的序列,特别的,一
阅读全文

浙公网安备 33010602011771号