07 2022 档案
摘要:传送门 关于 \(n\) 个数,每个有取值范围,求异或和为某一给定值的方案数:原题 点击查看代码 // ubsan: undefined // accoders #include <bits/stdc++.h> #include <bits/extc++.h> using namespace std
阅读全文
摘要:传送门 答案显然是 \(\prod\limits_i(cnt_i+1)\) 首先 \(O(n\sqrt n\log n)\) 的做法有若干 包括但不限于根号分治+可持久化数组 然后来考虑一个时间 \(O(n\sqrt n)\),空间 \(O(n^2)\) 的分块 预处理出每两个块之间的答案及每种颜色
阅读全文
摘要:传送门 近乎大模拟 均含圆心=随意-恰好一个含圆心-均不含圆心 将恰好一个含圆心拆成钦定一个含圆心,另一个任意-二倍两个均不含圆心 然后各种拆,大概要处理这么个东西 \(s, t\) 是枚举该凸包最靠近圆心的边 然后算贡献就是左边随便选右边全是异色 \(p_1, p_2\) 是 \(s, t\) 的
阅读全文
摘要:传送门 奇诡无意义构造题 直接放题解因为这个思路根本不可想 点击查看代码 // ubsan: undefined // accoders #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 10
阅读全文
摘要:传送门 嗯。 关于 Graham 算法求凸包的一些实现细节: 选取最左上的点为基准点(定义为横坐标最小的点,如有相同选纵坐标最大的) 注意若逆时针扫描,只有选最左上的点是正确的而选最左下不正确 当按极角序排序时,若当前比较的两点横坐标相同纵坐标小的在前,若极角相等模长小的在前 点我送凸包板子 nam
阅读全文
摘要:传送门 MD 傻逼题解多说几句人话能死啊 哦原来题解还说错了几句啊,那没事了(双关 关于最小割输出方案:注意 "\(s\) 可达" 是包括反向边的,我被菱形图绕晕了 所有理解过程以注释的形式写在题解 pdf 里了 pjudge 题解中最小割的定义十分迷惑,放张图方便理解 其 \(X_l\) 是左部未
阅读全文
摘要:传送门 因为不会 分式的基本性质 卡在了最后一步,我是什么品种的傻逼 首先发现 \(a, b\) 只可能是 \(a_i, b_i\) 中出现过的数或 1 那么枚举 \((a, b)\) 组合再 \(O(n)\) check 可以做到 \(O(n^3)\) 然后考虑拆一下贡献 发现 \((a, b)\
阅读全文
摘要:传送门 写一半代码没了,直接引出了 bash 学习笔记 考虑扔到 SAM 上 因为是要求子串在第二个串中出现过,所以考虑对第二个串的每个子串统计贡献 一个暴力是对于每个询问,将 \(s_{l,r}\) 放在第二个串的 SAM 上跑 那么跑到的每个节点及其祖先都可以产生 \(len*cnt\) 的贡献
阅读全文
摘要:传送门 垃圾出题人是对着做法出的题吧 只会一个 \(O((n+q)\log^2n)\) 的做法: 先考虑一个 \(O(qn\log n)\) 的暴力: 若想让某株草活到第 \(i\) 轮,需要用 \(\leqslant y\) 次交换 使其在 \(2^{k-i}\) 个长为 \(2^i\) 的区间中
阅读全文
摘要:传送门 垃圾题解居然是 \(O(n\sqrt n\log n)\) 的 需要优化跳链 根号分治,使用光速幂状物 复杂度 \(O(n\sqrt n)\) 点击查看代码 // ubsan: undefined // accoders #include <bits/stdc++.h> using name
阅读全文
摘要:传送门 貌似强化成给一堆矩形更好做一点 考虑让每个有交矩形被统计恰好一次 用各个端点来回差分一下就行 使用主席树以达到 \(O(n\log n)\) 点击查看代码 // ubsan: undefined // accoders #include <bits/stdc++.h> using names
阅读全文
摘要:传送门 真就诈骗题 仔细观察题目发现这玩意什么性质都没有 结果正解是“观察到加了剪枝的暴力状态数是 \(1e9\) 级别的可以打表” 那么就爆搜,记录当前的 \(i\),当前的 \(p_1\) 在原序列中的位置,已经确定值的位置个数(方便新确定一个位置的值时算方案数)以及当前方案数 还要开个数组记录
阅读全文
摘要:传送门 欸你谷的月赛质量啥时候这么高了( 只会到 \(O(n^2)\),然而没有这档分 估计出题人也想不到有我这样的 nt 选手吧 先说 \(O(n^2)\): 这题看着挺扫描线的,那就尝试扫描线维护 \(\rm mex\) 那么枚举 \(r\),尝试不断减小 \(l\) 强制 \(a_i<b_i\
阅读全文
摘要:传送门 发送时间:2022-07-24 12:14:38 在【PR #5】双向奔赴中 原题保证了 "For all pairs of distinct integers \(1 \leqslant i, j \leqslant N\) , either \(a_{i,j} = a_{j,i} = −
阅读全文
摘要:传送门 [CF850F] Rainbow Balls 被强迫学习鞅与鞅的停时定理.jpg 读原论文时的笔记直接加在 pdf 上了,pdf 在云盘上 本题和倒数第二道例题十分相似 考虑对一个局面构造一个势函数 \(\phi\) 那么 \(\phi(A_t)+t\) 是一个鞅 可以利用 \(E(\phi
阅读全文
摘要:传送门 \(x\leqslant 5\) 可以预处理出所有 \(2^5\) 种前 5 条边选/不选的最小生成树权值和 考虑链怎么做 发现可以线段树维护,需要维护 \(l, r\) 与 0 是否连通的每种情况的最小权值 这个是可以合并的 然后正解使用 kruskal 构造等效链 正确性:(补的题解记不
阅读全文
摘要:传送门 小清新神仙题目 直接处理排列很难处理 \(\forall x\in[1, n]\),考虑 01 序列 \(t_i=[a_i\geqslant x]\) 对这个 01 序列状压求答案是容易的 那么对所有 01 序列答案求和即可 复杂度 \(O(nm2^n)\) 点击查看代码 // ubsan:
阅读全文
摘要:传送门 策略是每次取最高位 (赛时推出的策略是最高为 11 拆最高位,最高为 10 拆最高位的下一位,但仔细思考会发现这个其实等价于每次取最高位) 那么尝试写出贡献 最低位需要特判不好维护,考虑当成普通位来算再把算多的减掉 那么若第 \(i\) 位为 1,其贡献为 \[(i+1)2^{i+1}+\f
阅读全文
摘要:传送门 [ARC062F] Painting Graphs with AtCoDeer 关于 Polya 定理: 一般用在染色上吧?如果是的话,可能的切入点(用 \(k\) 种颜色):\[\frac{1}{G}\sum\limits_{p\in G}|k|^{c(p)} \]其中 \(c(p)\)
阅读全文
摘要:传送门 即为统计 \(m\mid F(x)\) 的个数 有性质 \(m\mid F(x)\to m\mid F(x+m)\),所以按 \(x \bmod m\) 的余数分类处理 考虑 \(m\) 的每个质因子,限制变为 \(\prod p_i^{c_i}\mid F(x)\) 那么对每个 \(r\)
阅读全文
摘要:传送门 发现可能的 DNA 序列总是两个前缀的 lcs 放到 SAM 上就是两个节点在 fail 树上的 lca 发现这样的 lca 只有 \(O(n)\) 个,暴力插到一棵 trie 树里 然后加 DNA 序列就是对每个 lca 统计贡献,可以暴跳父亲树剖维护 然后发现这棵 trie 的大小貌似是
阅读全文
摘要:传送门 关于 FWT: FWT 是线性变换,所以最外层循环的枚举顺序其实无关紧要 然后最外层枚举其实是固定了一个二进制位,用不同的方法合并剩下的位 固定的位之间是独立的,所以固定某一位跑 fwt_or,再固定另一位跑 fwt_and 之类的事情也是可行的 根据上面分析写代码即可 点击查看代码 //
阅读全文
摘要:传送门 带加带删,加好加删不好删的题记得线段树分治 关于不带删的那档分: 贡献是 \(\max(a_c+b_c, a_y+b_y)\) 拆一个出来,变成 \(\max(a_c-a_y+b_c, b_y)+a_y\) 发现 \(a_c-a_y\) 只和物品 \(a\) 有关,令 \(v=a_c-a_y
阅读全文
摘要:相似序列问题 B关系 将限制转化为 LCS 长度 \(\geqslant n-2\) 根据转移 \(f_{i, j}=\max(f_{i-1, j}, f_{i, j-1}, f_{i-1, j-1}[s_i=t_j])\) 得到只有两维之差 \(\leqslant 2\) 的状态是有用的 那么 d
阅读全文
摘要:传送门 [AGC014E] Blue and Red Tree 手玩一下 因为加一条红边的时候要求路径上蓝边都没动过 所以转化为链覆盖,每次找一条被覆盖次数为 1 的边删掉,再撤销对应的覆盖操作 可以对每条边维护所有覆盖其操作的异或和/hash 值之和来找到覆盖其的操作 复杂度 \(O(Tn\log
阅读全文
摘要:传送门 先读错一下题:是不是 \(x, z\) 分别在 \(y\) 的两个不同子树里啊?那不是启发式合并一下就完了? 然后发现 \(y\) 是在路径上 然后发现 \(y\) 不是 lca 的话 \(x\) 和 \(z\) 就一个在子树内一个在子树外 启发式合并 + 哈希表处理掉是 lca 的情况 然
阅读全文
摘要:传送门 只会到单次询问 \(O(|答案子串||\sum|)\) 的做法 建出广义 SAM 来直接每次把字典序第 \(k\) 小子串找出来就好了 正解是trick科技: 关于 DAG 剖分: 令 \(f_i\) 为从 \(i\) 出发的路径数 对每个点挑选 \(f\) 最大的后继作为重后继 这样每跳一
阅读全文
摘要:传送门 神必卡常毒瘤出题人是屑 从复杂度猜测需要根号做法,那么考虑分块 发现对于一个询问 \([l, r]\),\(\forall i\in[l, r]\and a_i\neq a_{i+1}\) 产生 \(cnt_i\times rcnt_{i+1}\) 的贡献 这里 \(cnt, rcnt\)
阅读全文
摘要:传送门 赛时折腾一个能优化的 \(O(n^8)\) DP 假了 听说状态数到 \(O(n^{11})\) 才能写? 赛时想法是枚举一个点,再枚举一个区间作为其子树 每个点在其所有祖先统计一次答案 但是这样是三个变量 有一种两个变量的统计方法:枚举两个点,钦定这两个点之间的点权比这两个点都小,再给这两
阅读全文
摘要:传送门 沈老师有个神仙爆标做法: 考虑一个特别的 \(O(n^2)\) 做法: 令 \(nxt_i\) 为 \(i\) 后面第一个与 \(i\) 同色的位置 对于一个询问 \([l, r]\),先预处理出在左端点处的 \(val=\max\{nxt_i\mid nxt_i\leqslant r\}\
阅读全文
摘要:传送门 折腾了半天矩阵,结果正解是 DP 发现操作一个位置会将低于这一位的位清空 那么对把最高操作位扔状态里 令 \(f(h, i, j)\) 为操作的最高位 \(\leqslant h\) 时从 \(i\) 到 \(j\) 的方案数,不考虑第一步和最后一步的限制 转移时枚举一个最高位是在哪个点操作
阅读全文
摘要:对对就是明天的,
然后时间旅行完头挺晕的剩下两题等会更
阅读全文
摘要:传送门 想写没写完的乱搞: 考虑对每次询问传一个 \([0, 5]\) 的编号表示最短路应该经过哪条边或都不经过 随着前几次询问结果得知,可知 \(\forall i, w_i\in[l_i, r_i]\) 所以可以缩小 \(i\) 的可行方案数,可以少用几位 \(O(玄学)\) 然后正解: 因为难
阅读全文
摘要:传送门 围观自己被吊打.jpg 关于动态开点线段树的区间染色:在 upd 时注意 if (区间染完了) return;,否则会在对这个区间做 pushup 时出问题 在 c++20 中所有基于 struct 的比较函数都必须加 const,否则会 CE 先说特殊性质: 只有相交和不包含可以建出树来转
阅读全文
摘要:传送门 赛时 NT 了到十一点才明白操作 1 放到差分序列上就是直接做 将这段区间单拎出来,其差分序列的和为零 那么最小操作次数就是 \(\frac{\sum |d_i|}{2}\) 然后版本问题可以用操作树解决 对于卡空间的可持久化题:要是支持回退的话可以康康能不能用操作树避免可持久化 发现翻转一
阅读全文
摘要:传送门 赛时根本没意识到自己写了个完全没有正确性的做法,结果它跑过了 60 pts 发现这个题要输出实数,允许的误差范围还大的离谱啊 交个卡时随机试试? 对于一个随机串 \(t\),它对每个能匹配它的 \(s\),设共有 \(k\) 个,产生 \(\frac{1}{k}\) 的贡献 发现不太对,如果
阅读全文
摘要:传送门 [牛客11259H] Scholomance Academy 先考虑 \(t=1\) 的情况 此时 \(a_1a_2\cdots a_m=n\) 的限制可以变为对 \(\sum\) 的限制 考虑用 \(\varphi(p^k)\) 关于 \(k\) 的生成函数来处理这个加法卷积 令 \([x
阅读全文
摘要:传送门 能看出 考虑右边点连通左边点,那么只有单调栈中的点是有用的 考虑左边点连通右边点,那么只有取到前缀最小值的点是有用的 却意识不到 一个连通块的右边界 \(i\) 满足 \[\min\limits_{j=1}^i\{a_j\}>\max\limits_{j=i+1}^n\{a_j\} \]是怎
阅读全文
摘要:传送门 非常不可想不可做 核心在于对 \(a\equiv b\pmod m\and g=\gcd(a, b, m)\),有 \(\frac{a}{g}\equiv\frac{b}{g}\pmod{\frac{m}{g}}\) 这一性质的灵活运用 发现限制条件等价于 $$af_{n-1}+bf_n\e
阅读全文
摘要:传送门 每天一个坑人小技巧: ‐ 和 - 是不一样的,前者虽然用鼠标选中时看起来是一个字符,但实际上是三个 包括快读和 \(\tt cin\) 在内的一切读入方法都会因此寄掉 此问题可能出现在从 PDF 中复制样例的过程当中 upd:这玩意是连字符 atan2(double a, double y)
阅读全文
摘要:传送门 Permutation on Tree 你考虑这么一个事,就是 题解做法巨恶心 我写的题解做法 只有我写的题解做法 然后是具体做法: 发现贡献是绝对值的形式,类似这个的拆开考虑 那么 \(\forall i\in[1, n-1]\),考虑将序列中 \(\leqslant x\) 的元素记为
阅读全文
摘要:传送门 人类智慧一下发现三角剖分后总有一些三角形有至少两条边是原多边形的边 要是能每次删掉这样一个多边形就可以递归子问题了 然后人类智慧一个结论: 只要多边形没有一条边的端点是同色的且每种颜色的顶点都至少出现了一次就一定有解 然后策略是每次删出现次数最多的颜色 归纳法可以证明 用 set 可以做到
阅读全文
摘要:传送门 它说啥你干啥 BFS 跑了 50 ms 点击查看代码 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC target("avx", "sse") #pragma
阅读全文
摘要:传送门 关于「给定一些 \(s\) 和一些 \(t\),每个 \(s\) 向是其子串的 \(t\) 产生贡献」: 注意「\(t\) 是 \(s\) 的子串」还可以被表示为两者拼接后的 \(\tt height\) 数组上的一段区间 \([l, r]\),满足 \(t\) 是区间中每个后缀的前缀 那么
阅读全文
摘要:传送门 看到树上贡献里面带 \(dis\) 的东西先想点分治 然而正解不是点分治…… 大力反演一下,式子变成 \[\sum\limits_{T=1}^n\sum\limits_{t|T}\frac{t}{\varphi(t)}\mu(\frac{T}{t})\sum\limits_{i=1}^{\l
阅读全文
摘要:传送门 小清新神奇题目 选一个前缀和一个后缀拼起来,求出现次数? 发现出现位置满足前缀出现了后缀也出现了 发现就是正反串 border 出现过的位置交 建成 border 树变为子树交,然后树状数组扫描线即可 复杂度 \(O(n\log n)\) 点击查看代码 #include <bits/stdc
阅读全文
摘要:传送门 考虑写个贡献形式: 枚举是哪个点是叶子,发现不可避免的需要枚举最终选定的区间 \[\sum\limits_{i=1}^m(m-i+1)\sum\limits_{u=1}^n\deg_u\times i\times(m-i)^{\underline{\deg_u-1}}(m-\deg_u)^{
阅读全文
摘要:传送门 首先基本可以确定是 DP 但是状态是难以划分的 又是非人力之可为系列 考虑一个图中不存在负环?那就存在最短路啊 因为边权为 0 的那些边的存在,有 \(dis_{i}\geqslant dis_{i+1}\) 因为图中边权都是 \(\pm 1\),所以有 \(dis_{i+1}\geqsla
阅读全文
摘要:传送门 感冒了头好痛,不想写题解 发现就是要在线加入长度为 \(i\) 时每个 border 的贡献 发现在处理到 \(i\) 时的最长 border 是可以求出来的 但是这个东西在 KMP 的失配树上和 \(i-1\) 的甚至可以不在同一条链上,变化量巨大 然而注意到这样一个性质就好做了: 从 \
阅读全文
摘要:传送门 字符消除2 貌似结论还是比较好猜的 但是证明…… \(\tt Itst\) 给出的证明方法赛时不太可想 动动的证明貌似还好一点 代码鸽了,把上面那题代码直接粘上去能过
阅读全文
摘要:传送门 什么都不能维护嘛,看着挺分块的 边角是容易处理的 整块的标记也好打 但标记怎么下放呢? 发现只关心每种颜色在经过一个序列的操作后会变成什么颜色 所以对每个块维护操作序列,倒序处理即可 需要调整块长来卡空间 时间复杂度 \(O(n^{1.55})\),空间复杂度 \(O(n^{1.45})\)
阅读全文
摘要:传送门 难点在于相信这是一道普及题(指 普及+/提高) 然后化加为删并查集随便搞搞就好了 一定要对每个不取模的题都计算一下答案上界!已经有卡开个 long long 就跑路的人的题了 点击查看代码 #include <bits/stdc++.h> using namespace std; #defi
阅读全文
摘要:传送门 还算是思路比较正常 首先发现这里 \(n\leqslant 15\),考虑枚举哪些怪最终被打死了 发现攻击次数是定值,令 \(sum_s\) 为 \(s\) 中怪物血量之和 那么就要求一个 \(g_{i, s}\) 为对 \(s\) 集合中怪物攻击 \(i\) 次且均不打死的方案数 这相当于
阅读全文
摘要:传送门 小清新送命题目 首先发现可以按照 \((x+y)\) 的奇偶性分成两张图,两张图之间是独立的 然后发现此刻在每张图上选一个点后,会分成四个子问题 发现本质不同(位置不同)的子问题个数是很少的,可以直接记搜 发现 \(O(r^3c^3)\) 点击查看代码 #include <bits/stdc
阅读全文
摘要:传送门 真的有人能在不知道结论的情况下做出本题吗? 先放结论: 对于每个前缀,有用的后缀只有 \(O(\log n)\) 个 证明是这样的: 考虑当前前缀的两个有效后缀 \(i, j\) 满足 \(|j|<|i|<2|j|\) 因为 \(j\) 是 \(i\) 的后缀且 \(j\) 仍是有效的,所以
阅读全文
浙公网安备 33010602011771号