上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 57 下一页
摘要: 传送门 链上的部分分可以单调栈求出范围 \(l, r\) 后主席树维护 其实也可以求出后转化为三维偏序求解 题解说可以忽略一个条件,再减去算重的 然后正解 与形如 经过点中的最大值/起点为全路径最大值 类似的问题,序列上可以考虑笛卡尔树,树上可以考虑kruskal重构树 对点权建立kruskal重构 阅读全文
posted @ 2021-11-11 06:37 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 当 \(min\{a_i\}>0\) 时,整个序列可以被任意划分 否则可以证明原序列的mex一定是划分得到的序列的mex 于是令 \(f[i]\) 为区间 \([1, i]\) 的合法划分方案数 特别的,\(f[0]=1\) 于是发现转移点 \(j\) 要求 \([0, mex)\) 中的数 阅读全文
posted @ 2021-11-11 06:21 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 可以证明一个结论: 若从后向前扫,每个重复的数变为它后面第一个没有出现过的数一定更优 于是可以用并查集找这样的未出现的数 复杂度 \(O(nlogn)\) Code: #include <bits/stdc++.h> using namespace std; #define INF 0x3f 阅读全文
posted @ 2021-11-11 06:13 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 第一思路是二分+类树形DP 首先可以贪心从大到小加边+dsu将原图变为一棵树(其实这就是最大生成树但我没有意识到) 然后发现一定存在一种最优策略使得边权最小的边只被经过一次 于是可以从最小的这条边断开分治 但从一个连通块里找边权最小的边的复杂度炸了 于是正解是kruskal重构树,并且不用二 阅读全文
posted @ 2021-11-09 10:33 Administrator-09 阅读(43) 评论(0) 推荐(2) 编辑
摘要: 传送门 令 \(f(x)\) 为兑换 \(x\) 个A种货币时的最大兑换数 于是 \(f(x)\) 是个单峰函数,可以三分 但会炸精度,于是需要代回check一下是否合法以及是否有更优解 然后还有函数图像特别平的时候精度不太够,需要单独check一下两个端点 复杂度 \(O(nlogn)\) Cod 阅读全文
posted @ 2021-11-08 20:51 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 毒瘤数据结构 正解思路很特别 对于一个闭区间修改 \([l, r]\),将其写成开区间 \((l-1, r+1)\) 于是类似zkw线段树,我们发现在原树上向上跳链(到lca的孙子辈)的过程中应该修改的节点恰好是访问到的节点的兄弟 于是分成左链和右链分别树剖,每个节点维护其兄弟的信息 然后因 阅读全文
posted @ 2021-11-08 20:51 Administrator-09 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 传送门 画个图可以发现最终形成的东西是有一条公共边的两个三元环 于是求三元环是 \(O(m\sqrt m)\) 的 统计答案考虑枚举公共边 发现一条边参与的所有三元环中只有剩下的那个未确定的点权值最大的两个加上这条边所构成的四元环可能成为最终答案 于是对每条边开桶即可 Code: #include 阅读全文
posted @ 2021-11-07 17:05 Administrator-09 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 传送门 并不会做 关于一个字符串的最小循环节:即为 \(len_s-max\{len_{boader}\}\),读者自证不难 于是就很好写了 对于每个子区间,令区间长为 \(n\),最小循环节长度为 \(len\) 则最小循环节可能出现的次数是 \(\frac{n}{len}\) 的因子 于是不难证 阅读全文
posted @ 2021-11-07 17:01 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 尝试扫描线,没调出来 考完才发现我试图用线段树的pushup完成对值域的离散化 这样极为难写 扫描线上的所有点会将线分成几个形如 \([y_i, y_{i+1}]\) 的区间 令一个 \(c_i\) 为区间 \([y_i, y_{i+1}]\) 被覆盖的次数,维护这个东西即可 但是还有一个 阅读全文
posted @ 2021-11-07 16:51 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 传送门 并不会做 发现两个异号数字相减的结果的绝对值等于这两个数字的绝对值之和 于是只要集合中有异号元素,就总可以构造出一种顺序使结果为所有元素的绝对值之和 然后考虑没有异号元素的情况 那就得找一对相邻元素相减一下形成一个异号元素 这个找结果绝对值最大的即可 复杂度 \(O(n)\) Code: # 阅读全文
posted @ 2021-11-07 16:43 Administrator-09 阅读(0) 评论(0) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 57 下一页