06 2022 档案
摘要:传送门 终于一睹 RainyBunny 神奇剖分真容了 引入「毛毛虫剖分」: 发现这东西对毛毛虫操作有类似重链剖分对链操作的普适性 于是对于本题,只需要按奇偶分别建一棵线段树,大力维护即可 但毛毛虫剖分的细节较多且常数较大 复杂度 \(O(n\log n)\) 点击查看代码 #include <bi
阅读全文
摘要:传送门 萌新刚学概率.jpg 一个行之有效的乱搞是在一棵 \(k\) 叉树上轮流问该去哪个叶子,问到问出来为止 \(k\) 取 \(3.95\) 时最优,可以拿到 \(64\ \tt pts\) 然后正解: 没什么再复读一遍的意义,所以 假如我现在问了一个区间,它返回 0 那么对于每个区间,答案在这
阅读全文
摘要:传送门 首先可以确定是按位确定 考虑怎么 check 一个位置到 \((n, n)\) 的最小代价 发现只有角上的四个魔眼是有用的 然后分类讨论这个点在什么地方 然后大力写就可以了 点击查看代码 #include <bits/stdc++.h> using namespace std; #defin
阅读全文
摘要:传送门 主要有两种做法 考虑第一个子任务 因为每个位置都是完全等价的所以答案显然是 \(\frac{1}{n}\) 考虑所有 \(\geqslant k\) 的位置,发现如果钦定一些位置 \(\geqslant k\) 的话这些位置也是等价的 所以问题其实可以被转化成钦定 \(\geqslant k
阅读全文
摘要:传送门 在 c++20 中传入 STL 的比较因子记得写成 struct cmp{inline bool operator () (...) const {}};,需要加这个 const 否则可能 CE 发现完全不可贪心,也不太能 DP 所以考虑二分答案转化为判定 然而判定性 DP 也不太能写 所以
阅读全文
摘要:传送门 传送门 Q:我的学生都不改题怎么办? A:把没人改的题在几天后的模拟赛里再考一次,记得提前把前一场的题解给他们 于是就改了一场题( 感性发现貌似有好多点的答案都是一样的 并且发现貌似好多点都是等价的 仔细思考发现相邻两个障碍之间的线段中的点是等价的,一定可以通过同样的代价到达 又发现每条横线
阅读全文
摘要:传送门 hash<bitset<N>> 虽然复杂度正确,但冲突率十分感人,不建议使用 暴力可以 bitset + 记忆化 然后这个东西看起来就是要能想办法加一个或者合并两段 考虑区间 \([l, r]\) 的贡献 发现在(靠右)第一个 1 之后的部分是无用的 在第一个 1 和第二个 1 之间最低位有
阅读全文
摘要:传送门 传送门(暂时无法评测,什么时候滥用一下 admin 账号) 很神仙的题 发现两个相交的半平面的异或两个相对的扇形 联想到若所有半平面交于一点, 则将这些半平面绕这个点排序后临项的异或和之和恰为整个平面 但是它们并不一定交于一点怎么办呢? 神仙的地方来了: 考虑平面内随机撒 \(B\) 个关键
阅读全文
摘要:传送门 一个破题做一下午加一晚上跟颓废有什么区别 首先发现只有单调栈中的红色石头是有用的 然后发现操作等价于移动蓝色石头覆盖其左下的红色石头 发现每个红色石头都要被覆盖 \(\geqslant k\) 次 然后发现覆盖之间是独立的 那么可以拆分成 \(k\) 个 \(k=1\) 的方案 考虑 \(k
阅读全文
摘要:传送门 真切感受到了讲课就是被带着颓题解( 我去扫大街扫描线,尝试对每个 \(r\) 维护出 \(f(l)\) 表示 \(l\) 处的答案 那么加入一条绳子 \([l, r]\) 的影响就是将 \(f(i)\geqslant l\) 的 \(f(i)\) 赋值为 \(r\) 注意还有一个绳子必须要完
阅读全文
摘要:传送门 这一场怎么全是神仙题 发现前四个操作是容易打标记维护的 但是“把每行/列变为其逆排列”这种与每个位置具体值和下标同时有关的东西怎么办呢? 当处理同时涉及位置(下标)和权值的操作时,注意序列/矩阵不必显式的当成序列/矩阵 而是可以当成二/三元组 \((i, a_i)/(i, j, a_{i,
阅读全文
摘要:传送门 是原题的加强版,我就一并写在那题题解里了 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 20000010 #define ll long long // #defin
阅读全文
摘要:传送门 平凡树形 DP 已经做不出来了,怎么办啊 发现需要记录的信息真的很多,光记录到定义里面维数就爆表了 但是发现真正有用的东西可以分为独立的两部分(这两部分是互相转移的关系) 于是令 \(f_{i, j}\) 为在点 \(i\) 子树内,有 \(j\) 个点还未分配管辖点(但统计了这些点到 \(
阅读全文
摘要:传送门 啥也不会.jpg 首先因为不能往回走 所以肯定是一个人先把别的子树走完 尝试令 \(f_i\) 为仅剩 \(i\) 中子树没走的最小步数 发现可能出现剩一个子树和一条链,两者同时往下走的情况 发现这种情况下剩的链一定是子树内最长链 一个想法是让走子树的走到第一个有 \(>1\) 个儿子的地方
阅读全文
摘要:传送门 首先以为是贪心 然后发现是 ARC F 题不太能直接贪 发现这是个环很难处理 尝试断成链又发现限制条件不好挪到链上 于是题解指出关键性质是限制条件恰好长为 \(n\) 那么二分答案一下,总草莓数是固定的,一个半环上至少的限制就变成了另外半环上至多的限制 为了与题解同步方便,令 \(s_i=\
阅读全文
摘要:传送门 有两种切入思路 pb 思路: 如果方案确定,那么就变成了最短路问题 如果存在一大段相同字符显然可以用另一种字符跳过去 所以猜测每个时刻需要考虑的字符数是较少的,可以建出自动机处理 然后在自动机上跑 DP(DP 套 DP)就行了 自动机可以经过(很)大力手玩建出来 题解思路: 还是最短路,发现
阅读全文
摘要:传送门 讲课就是被带着颓题解 考虑挖掘这个操作的性质 操作是询问 \(s\) 中出现次数最少的元素的出现次数 那么发现 \(s\) 中出现次数最大的元素的出现次数也是可以求的 对 \(\overline s\) 问一下就行了 于是开 \(m\) 个桶,尝试将每个元素放到一个桶里 能放的条件是那个桶加
阅读全文
摘要:感觉是很神仙的题!但是没有地方交所以就不写代码了 Statement Solution 发现这个 \(6\) 次真的少的可怜 如果是固定决策的话决策树甚至只有 \(64\) 个叶子 但是注意到要到达的 \(n\) 是 2 的幂次 于是神仙思路是通过一些奇特的策略在决策树的叶子之间跳转 考虑一个经典的
阅读全文
摘要:传送门 很好的题 要是有人能证下结论就更好了 结论是将 \(\frac{a_1}{b_1}\) 写成二进制小数形式 \(0.010011\cdots\),然后每次操作取当前的最低位 感性理解好像确实挺对的 那么如果不是循环小数可以直接 DP 了 令 \(f_i\) 为第 \(i\) 位向上一位产生进
阅读全文
摘要:传送门 不想写这个题解了 全是人类智慧 做法见题解 一个有趣的事情是关于无解的证明,十分巧妙: 为啥逆序对是奇数就一定不是一个大环呢? 考虑全是自环的情况逆序对为 0 每次可以以逆序对数 +1 为代价合并两个环 所以只有一个大环一定合并了偶数次 (大概) 点击查看代码 #include <bits/
阅读全文
摘要:传送门 关于一类 \(O(\frac{nV}{\omega})\) 计算带偏移量的 \(\sum\limits_{i=l}^r|a_{dlt_1+i}-b_{dlt_2+i}|\) 的方法: 考虑将一个 \(a-b\) 的贡献拆开,在每个 \(c\in[b, a]\) 都统计一次 一个做法是把所有数
阅读全文
摘要:传送门 还真是益智游戏( 人类智慧发现合法的图一定长这样: 于是对着中间那一段做区间 DP 并大力前缀和优化可以有 65 pts 然后正解: 换个方法人类智慧 整个图中只有两种方格的部分分是容易的 考虑这样一种划分: 枚举两条折线的交点,然后就注意到左上、右下、右上、左下的子矩阵都只会包含两种特定的
阅读全文
摘要:传送门 好题! 首先看这个题像矩阵快速幂 但是有这个和为 \(m\) 的限制很难搞出转移矩阵来 于是…… 看起来像矩阵快速幂但无法设计转移矩阵/状态中带有求和/DP 转移支持拼接的问题: 考虑能不能倍增处理,尝试使用 \(f_i\) 得到 \(f_{2i}\) 于是对于本题: 暴力 DP 是令 \(
阅读全文
摘要:传送门 先来口胡一个场上没写完的做法: 考虑根号分治,以 $\sqrt m$ 为界 一个暴力是合并时枚举两端点连通块的所有出边 但是度数很大的端点肯定不能直接枚举 那就根号分治,对度数 $>\sqrt m$ 的连通块开 $n$ 个优先队列 第 $i$ 个按 $s$ 升序存与点 $i$ 的连边 然后对
阅读全文
摘要:传送门 形如 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^n[\gcd(i, j)=1]\) 的式子别着急莫比乌斯反演,它等于 \((2\sum\limits_{i=1}^n\varphi(i))-1\) 于是式子被化为 \[\sum\limits_{i=1}^n(
阅读全文
摘要:传送门 喵的欧拉回路的题我从来做不出来 一个暴力是离散化后从每个点开始暴力找循环 让每条边只被经过一次就可以做到 \(O(n)\) 找环 然后只有一个循环的可以直接构造 \(n\leqslant 40\) 的可以卡时+剪枝大力搜 然后正解: 还是先找出循环 然后把循环看成点,镜子看成边,无穷远建成虚
阅读全文
摘要:传送门 MD 先把我是 SB 重复十遍 考虑暴力怎么打 把所有东西都塞到状态里面可以有一个 \(O(n^4)\) 的暴力 DP 令 \(f_{i, j, k, l, c}\) 为 \(s\) 匹配到了 \(i\),\(t\) 历史最长匹配长度为 \(j\),是在 \([k-j+1, k]\) 匹配到
阅读全文
摘要:传送门 为啥就我不会签到题啊 首先发现只需要考虑 dfs 序相邻的点的 lca 然后发现可以启发式合并维护子树内的点, 通过在合并时找前驱后继找到每个点分属不同子树的 dfs 序相邻的点对 然后每个点可以按深度分层 可以产生贡献的条件是某个深度有点对被完全包含 离线下来扫描线即可 复杂度 \(O(n
阅读全文
摘要:传送门 发现如果底数是固定的,那么转移是容易的 发现不同的底数只有根号种,所以好像可以 \(O(n\sqrt n)\) 发现需要一个快速幂,所以实际上是 \(O(n\sqrt n\log n)\) 发现精细实现的话可以过 发现其实可以用光速幂优化到 \(O((n+\sqrt V)\sqrt n)\)
阅读全文
摘要:传送门 首先 \(n^3\) DP 是容易的 考虑怎么优化 艹我意识到了 \(f_{i, j}\) 的单调性然后不知道怎么用 那么对每个 \(l\) 和每个 \(r\) 开两个单调队列维护这个东西 貌似先枚举长度再枚举端点的常数会很大 需要直接枚举端点 但是我写的枚举长度 所以我交的 zxy 的码
阅读全文
摘要:传送门 考虑树套树 外层线段树对颜色开,在上面跑线段树二分 内层线段树对序列下标开,存外层线段树节点所包含的颜色在序列上的所有出现位置 然后在内层线段树上扫描线 关于形如「出现次数 \(\leqslant w\) 的数的出现次数之和」或给它再带个权的限制: 一个常见处理方式是扫描线,从右到左前 \(
阅读全文
摘要:传送门 艹,我直到发现题解死活读不懂才发现自己题读错了 发现一条 \((u, t), (t, v)\) 的路径可以合并成一条 \((u, v)\) 的路径 所以为了最小化总路径数每个点要么只当起点要么只当终点 然后发现每条边被正反经过的次数抵消后的值的绝对值是容易求的 \[a_u\gets a_u-
阅读全文
摘要:传送门 先来口胡一个做法: 发现 Dave 选菜的过程实际上是在原串中匹配一个子序列的过程 那么单次询问就有一个 DP: 令 \(f_{i, j}\) 为在原串中匹配到位置 \(i\),在模式串中匹配到位置 \(j\) 的方案数 做一次是 \(O(nm)\) 的 现在有多次询问,发现这个 DP 在一
阅读全文
摘要:传送门 专题里放错题了吧? 发现就一模拟 贪心选数的时候在值域上从小到大选 选了一个数后位置在它左下和右上的权值都不能选 发现这两个覆盖分别有单调性,分别开个数组存 然后发现可以用一个值在 \(T\) 中的下标还原其位置 然后就做完了 复杂度 \(O(nm)\),常数莫名其妙的大 点击查看代码 #i
阅读全文
摘要:传送门 等退役了,我要去把 CC 协议通读一遍然后尝试搬一个基金会版式 先口胡(暴力)做法: 发现很矩阵乘,那就矩阵乘,没法优化(摊手 然后康题解,Dr.x义x 说它是可以优化的 于是尝试入门一些线性代数 link,link and link 所有可以表示为给定向量线性组合的向量的集合叫做张成的空间
阅读全文
摘要:传送门 发现就是 Dilworth 定理 但是要输出方案,还要求可行点以及方案数 首先 Dilworth 定理转化: DAG 最大独立集 = 最小链覆盖 关于 DAG 最小链覆盖: 一个做法是拆点二分图最大匹配 注意到每个点最多一个入度一个出度,那么就要最大化有出度的点个数 那么将每个点拆为入点和出
阅读全文
摘要:传送门 涉及到最大/小化两个字符串的字典序时,可以发现当某个前缀相同时应该比较后缀,所以可以考虑从后往前 DP 那么从后往前 DP 令 \(f_i\) 为从 \([i, n]\) 中能得到了最大子序列 那么转移考虑删不删 \(i\) 具体还是见题解,[敷衍脸] 点击查看代码 #include <bi
阅读全文
摘要:传送门 自闭了啥也不会 置换以及类似的操作是有逆变换的,写成 \(p^{-1}\) 的形式很适合找规律( 完全参考题解 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 1000
阅读全文
摘要:传送门 首先……怎么找出所有串之间的包含关系呢? 这个人太弱了只会根号找 所以当他赛后听说用 AC 自动机可以 \(O(\sum len)\) 的时候整个人傻掉了( 考虑对 AC 自动机上每个节点维护从这个点向上跳能跳到的第一个结束节点 然后这个东西可以在建 AC 自动机的时候处理出来 于是可以建立
阅读全文
摘要:传送门 能把题面写得这么难懂也是难为出题人了( 发现质因子之间是独立的 每个位置每种质因子只有选和不选两种可能 发现那个贡献其实就是两个数的某个质因子一个选一个不选有额外贡献 经典问题,最小割即可 然而贡献是乘积需要取对数化为加法 实数网络流 \(\tt INF\) 开太大会导致小数位精度很低,最好
阅读全文
摘要:传送门 发现可以矩阵快速幂预处理出一次递进的字符集映射 发现然后需要知道的就是要递进多少次才能变成 \(t\) 考虑那个映射的周期是 \(\mathrm{lcm}\),大约是 \(1260\) 级别的,可以接受 但是再考虑那个循环移位周期就大了去了( 那么忽略循环移位,只跑不加循环移位的递进,若某次
阅读全文
摘要:传送门 一道完整的签到题应该包括一个小时的读错题和一个小时的写代码( 建出笛卡尔树(建普通树也行) 尝试对每个点维护出这个点到根的路径上所有右父亲的答案 查询的时候最优的那个什么点就是 lca 的第一个右父亲 然后差分相减即可 发现差分相减的时候需要用到一个点的精确权值 所以还要维护一下 修改的时候
阅读全文
摘要:传送门 只能提出一个 \(O(炸天)\) 的非阶乘做法 先跑 \(n^2\) 次最大流求出任意两点间最大流 先 \(O(n^3m)\) 建出最小割树 然后建出 \(n^2\) 条边,枚举起点,拆点强制每个点经过 \(\leqslant 1\) 次跑最大流 因为最大流而且完全图所以最后每个点应该都经过
阅读全文
摘要:传送门 以为是个高端技巧/分治/凸包/多项式题 结果是个结论题 话说我以前做过这个题来着现在还是啥也不会 结论是最多有一个序列被选且被选完 证明考虑若有两个没有被选完的序列 \(a, b\) 一个选到了 \(i\),一个到了 \(j\),且 \(a_i\geqslant b_j\) 那么有 \(a_
阅读全文
摘要:传送门 一个有 \(m\) 条边的无向图图可以划分成 \(O(\sqrt m)\) 个独立集 事实上,一张无向图可以被划分成 \(\min\{\deg\}+1\) 个独立集 证明考虑染色,那么每个点周围至多有 \(\deg\) 种不同的颜色 要找边的交互题考虑先找独立集? 于是怎么暴力怎么划分独立集
阅读全文
摘要:传送门 啥也不会怎么办? 去 Luogu 上做这题,Luogu 上数据比较离谱,写啥都能过 首先发现有用的供货商按时间排序后价格递减 有用的消费商按时间排序后价格也递减 然后一对 \((i, j)\) 的贡献是 \((q_i-p_j)*(e_i-d_j)\),拆开式子里面有两个变量没办法斜率优化 于
阅读全文
摘要:传送门 啥也不会.jpg 和异或以后加加减减相关的问题尝试扔到 01-trie 上处理一下 当需要在 trie 树上查询多个取值的答案时可以尝试类似整体二分的将若干次查询一起处理 首先有个 trie 树暴力 枚举一个 \(x\in[0, 2^k)\),尝试在 trie 树上找到异或后差的最小值 那么
阅读全文
摘要:传送门 正解貌似很神奇的样子 但是题解是个啥** 先考虑怎么求出每个用户节点的 \(ms\) 考虑点分治,求出子树内每个服务器到分治中心路径上的 \(\max\) 和 \(\min\) 发现只需要记录最大的 \(\max\) 和最小的 \(\min\) 然后子树内每个用户节点用其它子树的信息更新自己
阅读全文
摘要:传送门 具体做法见 @WeLikeStudying 的题解 核心思路是首先易得 $\log^2 $ 做法 发现有共用点可以做到 \(\log n+\mathrm{popcount}\) 考虑题解的优化 若二进制位中有两个连续的 1,那么让低位的 1 被算 3 次是等价的 题解在做的就是这样一个事情
阅读全文
摘要:传送门 为啥我一看到 exCRT 就会觉得十分不可写并进行一个路的跑啊( 先来康康一个等比数列中的数会有什么性质 若进行一个质因数分解 \[a=\prod p_i^{s_i} \]\[b=\prod p_i^{t_i} \]那么等比数列中的数就是 \[\prod p_i^{s_i+t_ik_i},
阅读全文
摘要:传送门 赛时基本没有想这个题 所以把最水的题弃了 但是为啥 puts("0"); 有 31pts 啊? 要求染色后最小的包含两种颜色的边的生成树权值为 \(x\) 先去掉这个限制把最小生成树建出来 发现此时加入一条权为 \(w\) 的边 \((u, v)\) 会使权值增加 \(w-\max\{w_i
阅读全文
摘要:传送门 先来进行一些口胡: 先考虑怎么最大化 \(x_1+x_2\) 将所有数扔进一个线性基里,逐位确定 \(x_1\) 这要求 \(x_1\) 能被拼出来,那么仅针对这个限制每一位可能是只能选某一种或两个都可以选 考虑都可以选的情况,此时最大化 \(x_1+x_2\) 的方法是最大化这一位上的和
阅读全文
摘要:传送门 只有简略框架 核心思路来自这里 称一个区间为 \([能被到的编号最大值,能到的编号最小值]\) 若有边 \((u, v)\),则边的关系长这样 发现总是用 \(u\) 的左端点更新 \(v\) 的右端点 发现总是用 \(v\) 的右端点更新 \(u\) 的左端点 只知道端点在哪个块中是可行的
阅读全文
摘要:传送门 有些计数题当出现形如「异或和为零」或「元素出现次数为偶数」 的限制时会有性质: 当前 \(i-1\) 个元素确定时,第 \(i\) 个元素就随之确定了 那么可以利用这个性质进行递推 此时,\(f_i\) 实际上就是在不考虑上述限制条件的情况下选出 \(i-1\) 个元素的方案数 对于本题,使
阅读全文
摘要:传送门 万年前的讲课题 现在还是不会做 考虑这个物品体积有什么性质 感觉上没什么性质,但发现有个 \(a\leqslant 10,n\leqslant 100\) 然后思考二进制分组的可行性 核心难点在于合并 \(2^i\) 和 \(2^{i-1}\) 的答案 发现 \(2^{0\cdots i-1
阅读全文
摘要:传送门 20 pts 好像能当成 GT 考试做 哦其实令一个 \(f_i\) 为确定了前 \(i\) 个,其中存在不合法的的方案数就能 \(O(n)\) 做了 然后正解: 我以为这玩意是不能二项式反演的其实可以 令 \(f_i\) 为恰好有 \(i\) 组,\(g_i\) 为至少 \(i\) 组的方
阅读全文
摘要:传送门 不做评价 考虑计算没有任何一行一列同色的方案数 考虑枚举钦定有 \(i\) 行 \(j\) 列同色 令 \(g_{i, j}\) 为有 \(i\) 行 \(j\) 列同色方案数 \(i>0\and j>0\) 时有 \(g_{i, j}=\binom{n}{i}\binom{m}{j}3*3
阅读全文
摘要:传送门 直接钦定至少有多少个满足要求的话会发现剩下任意选的那些会影响一列是否合法 所以考虑钦定至少有多少个不合法的 令 \(g_{i, j}\) 为至少有 \(i\) 行 \(\neq 1\),同时至少有 \(j\) 列 \(\neq 1\),\(f_{i, j}\) 是恰好 有 \[f_{0, 0
阅读全文
摘要:传送门 果然我连蓝题都不会做 口胡做法: 三个限制,考虑二项式反演套二项式反演套二项式反演,每次剥掉一层限制 那么最内层限制大概形如要求一个 \(f_{i, j, k}\) 为至多用 \(i\) 种颜色,给 \(j\) 行 \(k\) 列染色(不要求每行每列都有涂色格子)的方案数 应该是对的吧 上面
阅读全文
摘要:传送门 这题要是放 T1 大概能过一车吧…… 发现序列是 \([l, r]\to [l+1, r+2]\to\cdots\) 考虑倒推,发现有个事情是若当前是某个在 \(s\) 中出现了至少两次的串的子串,则可以跳到另一次出现中 那么我们总是可以从靠左的那次出现跳到靠右的那次出现,循环往复直到串长为
阅读全文
摘要:传送门 答案是 \[\sum\limits_{i=0}^{n-1}w_i\sum\limits_{j=0}^{s_i}|s_i-j|\binom{i+j-1}{j}\binom{n−i+S−j-1}{n-i-1} \]然后照着题解推式子 \(j\binom{i+j-1}{j}=i\binom{i+j
阅读全文
摘要:传送门 全世界就 tm 我不会签到题 考虑一个 \(O(n^7)\) 的 DP 合法的排列就 3 个 存有几个 1, 2, 3, 21, 32, 13 就行了 注意精细处理上界 点击查看代码 #include <bits/stdc++.h> using namespace std; #define
阅读全文
摘要:传送门 考虑将一些乘法改成加法 那么就是求一个最大的 \(\frac{1+\sum b+i}{\prod a_i}\) 先将 \(a_i=1\) 的全都选了 剩下的发现分母是指数级的,所以最多选 log 个 那么每次贪心选能最大化分式的值的就好了 复杂度 \(O(n\log n)\) 点击查看代码
阅读全文
摘要:传送门 考虑什么时候一个数 \(i\) 不能被拼出来 发现肯定是要用 \([1, i-1]\) 中的数去拼,但不能被拼出来似乎有很多种情况欸? 那么考虑第一个不能被拼出来的数 \(i\) 这个数有很好的性质是 \([1, i-1]\) 中被选择的数的和是 \(i-1\) 且 \([1, i-1]\)
阅读全文
摘要:传送门 有空去做一下 GLR 2 的手势密码 考虑贪心 对每个子树维护向上延伸的路径 那么路径分三类:对应的 \(s_i\) 还未到过的,已经到过其对应的 \(s_i\) 的,两端点为祖先关系的 还有一种是端点在某个点的两个不同子树的 称两端点为祖先关系的为一类路径,端点在某个点的两个不同子树的为二
阅读全文
摘要:传送门 啥也不会实锤了 先考虑一个类似括号匹配的配对策略 怎么去找这些匹配呢? 发现同色钥匙非常少 那么把每种颜色的钥匙和宝箱拉出来建虚树 关于建虚树:一个比较省事的做法是将点集中的点拉出来按 dfs 序排序,对相邻两个求 lca 这样最终在虚树上的点都被找出来了,那么按照 dfs 序的包含关系连边
阅读全文
摘要:传送门 发现这个操作就是一次置换 考虑回到原序列所需最小次数就是所有置换环大小的 lcm 还有个交换两项很烦 但发现交换置换环 A 中一项和 B 中一项产生的影响相当于删掉 A, B 加入一个 \(siz_c=siz_a+siz_b\) 的 C 那么发现大小相同的置换环是等价的 又有 \(\sum
阅读全文
摘要:传送门 嗯三个小时刚不出来一个题实锤了 发现是对杨辉三角的若干列执行“隔一行统计一个”的操作 Excel 怎么让行列号从 0 开始啊 发现组合数 \(\binom{n}{k}\) 是 \(k\) 次多项式 那么第 \(i\) 列要求的这个东西是 \(i+1\) 次多项式 不知道为什么 那么答案是以
阅读全文
摘要:传送门 发现限制在每个点到根的路径上的每条边上 那么树剖即可,子树 dfs 序连续所以可以直接打标记翻转 复杂度 \(O(n\log^2n)\) 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #
阅读全文
摘要:传送门 对于 \(m=0\) 的部分赛时想了个脑瘫状压 令 \(f_{i, s}\) 为考虑到第 \(i\) 位,\(s\) 集合中的元素卡上界的方案数 转移 \(2^n\) 枚举选什么 然而这个东西有相当神奇的 \(O(n\log V)\) 做法 考虑从高到低第一个有数不压上界的位 那么低位一定可
阅读全文
摘要:传送门 见到计算所有点对间的贡献之和优先考虑分治 注意到这样一个事情: 因为只有三行,所以若在一个点 A 和 B 中间画一条线 mid 的话 那么从 A 到 B 的最短路一定恰好跨过 mid 一次 那么分治,可以 dij 处理出 \(mid\) 到 \([l, mid]\) 中的点的距离和 \(mi
阅读全文
摘要:传送门 哇啊啊兔兔你为什么不对我们好一点呜呜呜 做了三个小时,最后十分钟胡出来一个基本思路正确的做法 那有什么用,不还是垫底了 首先发现各种做法全是 \(2^n\) 的,要么需要记用了哪些数要么需要记填了哪些位置 发现书签形成的连续段可以缩减点数 如果只考虑形成的连续段的话这东西最多有 \(\fra
阅读全文
摘要:传送门 除了 \(1e13\) 的数据范围以外都很 min_25 筛 然而我 min_25 筛的板子忘了 那么是 powerful number 的板子题 \(f(x)\) 的定义题面已经给出 我们构造一个 \(g(x)=x^k\),尝试找到一个 \(g*h=f\) 发现 \(f(1)=g(1)h(
阅读全文
摘要:传送门 所以全世界就我没看出来答案是 log 级别的 所以全世界就我两个小时才搞出来一个傻逼二分 答案是 log 级别的很好证 发现要找一个最小的集合使其异或和为某个定值 那么考虑将所有数扔到线性基里,用 log 个数一定能异或出这个数 然后就随便做了 然后二分怎么做呢? 发现有可二分性。发现 fw
阅读全文
摘要:传送门 被这题折腾了一个晚上.jpg 邓老师名言:你先想想怎么判合法 那么考虑一个合法的 \(p\) 的条件是什么 首先 \(p_i\) 是中位数,那么将 \(a\) 升序排序后有 \(p_i\in[a_i, a_{2n-i}]\) 然后发现 \(p_i\) 一定是 \(p_{i-1}\) 或其前驱
阅读全文
摘要:传送门 \(\color{black}t\color{red}{ouist}\) 是世间真神! 发现坐标都是实数 猜测做法是计算所有弧两两之间的交的长度之和 \(\leqslant \sum l_i-c\) 的概率 然后看题解发现不是 发现本题有性质是弧长都是整数 将某条弧的左端点坐标写为 \(d_
阅读全文
摘要:传送门 [PKUWC2018]猎人杀 一开始的想法是计算出每个 \(A_i\) 在最后面的概率,再算出每个 \(B_i\) 在这个 \(A_i\) 后面的概率 然后发现各种不独立 于是换成对每个 \(B_i\),计算其在所有 \(A_i\) 之后被删除的概率 以为可以对每对 \((A_i, b)\)
阅读全文
摘要:传送门 什么神仙玩意…… 猜测可以用组合数学求出无限制时的方案数 那么可以容斥 \[ans=\sum\limits_s(-1)^{|s|}f(至少在 s 中为 1 的位置断开) \]然后尝试优化这个东西 令 \(f_i\) 为在 \(i\) 处断开的所有方案的带容斥系数的权值之和 转移 \[f_i\
阅读全文
摘要:传送门 一开始想把贡献拆成被操作了 \(i\) 次的数贡献 \(\frac{val}{k^i}\) 然后就什么也不会了 正解首先需要一个神奇的转化 考虑每个操作方案都对应着一棵 \(k\) 叉树 其中有 \(n\) 个权值为 0 的叶子,有 \(m\) 个权值为 1 的叶子 其它每个非叶节点的权值是
阅读全文
摘要:传送门 格路计数全家桶实锤了 官方题解 Luogu题解 上面题解中讲述了若干种常见格路计数方法,这里就不再写一遍了 本题需要注意的细节: \(len=x_2-x_1+y_2-y_1\color{red}{+1}\) 枚举进入点和离开点因为是进入和离开所以要求到这个点的上/下一步在矩形外 复杂度 \(
阅读全文
摘要:传送门 首先发现可以对这个栈建树,转化为树形 DP 那么一个暴力是令 \(f_{i, j, k, l}\) 为仅在 \(i\) 子树内,到 \(i\) 路径上出现过 R 的数量最大值为 \(j\),B 数量最大值为 \(k\),共出现 \(l\) 个 R 的方案数 转移可以填表+前缀和优化到 \(O
阅读全文
摘要:传送门 还是让我先来胡个做法: 考虑区间 DP,令 \(f_{i, j, k}\) 为前 \(i\) 行连通且第 \(i\) 行剩余的块是 \([j, k]\) 中的块的概率 容斥再前缀和再差分一下应该能 \(O(1)\) 转移 那么可以做到 \(O(n^3)\) 然后正解: 上面这个东西其实是可以
阅读全文
摘要:传送门 一开始想按行处理 等 DP 式子都写出来了发现限制可以跨多行 然后人麻了 考虑从上到下按列处理 发现若某一行存在两个相邻同色元素,则下一行必须反色 否则若这一行是红蓝交错排布,则下一行可以同色也可以反色 又发现按列处理的话可以用最小值划分子问题 所以考虑从上到下处理 solve(l, r,
阅读全文
摘要:传送门 神仙题! 听说大力卡时网络流匹配能过 考虑就是要找一个排列 \(p\) 使 \(\sum f_{i, p_i}\equiv 0 \pmod k\) 考虑将矩阵中的每个元素写成集合幂级数 \(x^{f_{i, j}}\),当 \(f_{i, j}=0\) 时这个元素就直接赋为 0 然后将乘法定
阅读全文
浙公网安备 33010602011771号