01 2022 档案
摘要:区间查询相关的问题多考虑下固定一个端点,然后有一个切入点是另一个端点移动一下能不能维护 另一个切入点是另一个端点单调移动能不能维护
阅读全文
摘要:传送门 前 5 分的暴力状压很好打 然后发现由于图的特殊性,最优方案中一定只有二元环 于是前 30 分可以二分图匹配 然后发现由于图的特殊性,可以从 n 到 1 贪心选能选的最大的 于是用一个 set 维护所有 就行了 点击查看代码 #include <bits/stdc
阅读全文
摘要:传送门 首先手玩发现性质: 假如一个串存在两个相等的字符中间只隔着一个字符,那么这个串就一定“配得上丹” 否则是否“配得上丹”等价于是否存在偶回文覆盖(使用若干偶回文串覆盖所有字符) 前一个很好处理,考虑后一个怎么维护 一个方法是离线后扫描线 对于一个右端点 ,若令线段树下标
阅读全文
摘要:传送门 首先给定的操作是按为或后右移一位 那么均为 2 的幂次减一的部分分可以按最高位排序后贪心 然后发现这些数任意的时候再按位贪心就假了 于是找性质发现 于是拆开考虑每个数没操作了多少次 将 写成
阅读全文
摘要:传送门 考场上胡了一个做法,证了一下是 的还挺开心的 结果考完才发现这玩意是 的 于是来自 @401rk8 的吊打标算做法:感谢来自 @Yubai 的复杂度证明 先说做法: 首先树是以 1 为根的,那么可以用 n 次询问得到每个点 dep 然后按
阅读全文
摘要:传送门 考场上转化为了一些形如「集合 S 中至少选一个」的限制,但是不会做 然而发现每个点一定恰好出现在两个集合中,所以如果把每个连通块看作一个点,这个图就是一个二分图 具体地,以 1 公司为例 先删去所有 2 的i点,并查集缩一次点,这些点形成了 A 部点 再删去所有 3 的i点,并查集缩一次点,
阅读全文
摘要:传送门 不会 做法……参考了这篇和这篇题解才看懂 然而题解都很详细,所以我只解释一步,就是第三步 于是我们将一个方案定义为只考虑 个大于等于当前小朋友的人,剩下的人先不计入方案数 于是(只计算当前小朋友及能挡住他的人)方案数是 我们将这样的方
阅读全文
摘要:传送门 发现 于是变成了一行杨辉三角的前 个的 lcm 的话可以将每个组合数质因数分解来处理 然后 变大的话 通过拆式子可以证明等价于求 \(\operatorname{lcm}(n-k+1,\c
阅读全文
摘要:传送门 确实写出心理阴影了 发现没有祖孙关系的两个点的子树之间互不干扰,于是尝试对这个东西进行 DP 转移的话发现形成的序列中第一个点一定是两个子树的根节点之一 枚举两种情况,发现变成了一个子树和一堆子树,就变成子问题了 先令 表示点 的子树内比 小
阅读全文
摘要:传送门 为啥孩子感觉难点主要在于 DP 啊 指针长剖明明很好写啊 考场上想 DP 的时候并没有想到这个东西是可以合并子树的 于是定义 为点 子树内所有选择的点的深度都 的最大价值 转移考虑将 的子树并入当前答案 首先有
阅读全文
摘要:传送门 发现对于每个圆,从能包含它的最小圆向它建边后可以简单 DP 于是考虑优化建边 有一个乱搞思路是树套树 查询能包含当前圆的最小正方形中的所有小圆,再逐一判断 确实可以被同心圆+圆周上均匀分布卡到 级别 然后考虑[优/劣]化,发现可以用 2D-tree 查询与圆心距离 \(
阅读全文
摘要:传送门 思路还是比较容易想到的,缩点后树剖即可 复杂度是两个 log 但代码实现比较阴间 其实貌似还可以用 lct 写但是我不会 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f3f3f3f3f #
阅读全文
摘要:传送门 因为我还没调出来先放上 lxl 的题解 duliu 然而名字叫做duliu只是为了恐吓选手 算法1 直接 DP即可。 算法2 考虑树上怎么做。 首先,最多只能剩一个叶子在最开始没选,否则在染到另一个叶子的父亲时白点会不连通。 我们把点权最大的那个叶
阅读全文
摘要:传送门 发现能力只能用一次 首先有一个分层图的思路,但是边建不下 然后发现可以用两次增广代替分层图 先跑一次最短路,然后拆式子建立凸包 更新每个点的 dis 数组后再重新增广一次即可 其实这个东西是有决策单调性的 貌似和代价为什么东西的平方相关的问题几乎都有决策单调性? 点击查看代码 #includ
阅读全文
摘要:传送门 这题其实可以费用流但并没有想到 存在最佳匹配/带有每个位置最多放一个的限制时,暴力可以考虑费用流 首先发现若将 b 数组排序,贪心从两边选一定更优 将 a 数组相邻元素看成值域上的一条线段 但是发现新加入的数可能使原来形成的数失配,一旦形成连锁反应就 了 其实如果这么写了因为
阅读全文
摘要:传送门 这空间卡的属实离谱 首先有个显然的树套树思路:将时间和区间都拆成 log 段查询,时间和空间复杂度都是两个 log 然而空间限制是两个 G 所以就开始码了对不对 所以就 MLE 了对不对 于是我们发现由于出题人的精心设计这点空间只够跑 次操作里的 次 离谱
阅读全文
摘要:传送门 神仙题,想不到,而且空间卡不过去 首先发现区间加字符串这个操作令人智熄至极 第一思路是离线什么的把这个搞掉 然后看一眼她要查询啥:区间 lcp 完蛋 于是正解: 首先有一个转化: 带修区间 lcp 等问题可以考虑维护一个像后缀数组一样的数组记录第 个字符串和第 个
阅读全文
摘要:传送门 官方题解 貌似人均能想到 就我一个只会个复杂度严格大于根号的破做法属实自闭 尝试找到一个 log 级别的做法 发现如果能维护出两个集合,使同一种矿物不在一个集合中,向下递归这个过程就能做到 log 然后调参照着题解调 最后我 Wrong Answer 90 了半天照
阅读全文
摘要:传送门 把智商下限秀完了…… 考场上试图打暴力,然后发现空间开不下挂成 了 于是…… 线性筛预处理分解质因数的时候,即使只记录 数组分解的过程也是log的, 只是用来卡常或保证线性筛严格 的 然后这题还有若干种优化写法但我一个都没
阅读全文
摘要:传送门 部分分的话 可以手动容斥 然后正解: 尝试构造一种更容易求解的与题目限制等价的表述 与前面部分分类似地,尝试找到什么样的序列一定不合法 发现 个集合里如果存在一个的 max 比其他的 min 都小就肯定不合法了 然后继续拓展,发现在
阅读全文
摘要:传送门 传送门 思路很巧妙的两个题 草稿纸在蓝书里 (尤其是图上连通性DP)是可以用「恰好」和「至少」之间的关系列出等量关系,进而解出其中一个的表达式的 图上度数为 的点产生 的贡献: 拆贡献要拆的彻底,事实上可以拆成钦定一个点满足这个条件,剩下的随便选 不只是图,序列也
阅读全文
摘要:传送门 因为是在补题解所以所有公式都省了 解释一下当时不太能理解的地方 这里这个 \(\frac{
阅读全文
摘要:传送门 因为没时间写了只记个大概思路 先转为求 , 为方案数 然后求这个 感觉题比较神仙我几乎就是在复述所以就直接截题解了 红色的是笔记 然后拆后面这个东西(前面“更好看”那一步并不知道如何想到) 似乎有推导方法?
阅读全文
摘要:传送门 状压枚举有哪些变量不满足要求,借此完成容斥 然后就是exLucas板子了 但我显然并不记得这个板子了 点击查看代码 #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define N 100010 #d
阅读全文
摘要:传送门 首先可以确定是矩阵树定理 发现我们可以钦定每种颜色对应一个边权 于是矩阵树算出来的东西是关于每种颜色的边数的二维多项式 , 是两种边的数量 于是可以多带几个值进去消元得到系数 ,答案即为 \(\sum r_
阅读全文
摘要:传送门 CF1290F 思路很神奇的题 首先一个凸包唯一对应一个向量可重集 于是DP这个可重集 首先这个可重集需要满足这个限制(懒得LaTeX写一遍公式了): 然后发现 的取值范围太大了没法直接DP,那怎么办呢? 原式形如 考
阅读全文
摘要:传送门 CF1361E 首先发现那个 的条件很奇怪 貌似可以随机化找到一个有趣的点,再利用这个点去找别的点 发现从这个点开始dfs得到的dfs树上仅有树边和返祖边 于是一个点无趣的条件是同时在超过一个环中或其子树内存在一条连向一个无趣点的返祖边 点击查看代码 #include <b
阅读全文
摘要:传送门 ARC100F 官方题解 注意形如「求包含一个给定子串(出现位置可以重叠)」的限制中那个「可以重叠」的条件可以这样去掉: 枚举这个子串的出现位置,剩下的位置任意填 这样每种合法方案都是会被计算到的 一个有些经典的问题: 部分分暴力DP的话可以利用 的限制 然
阅读全文
摘要:感觉是个很方便简洁的板子 点击查看代码 /** * Author: Simon Lindholm * Date: 2017-04-20 * License: CC0 * Source: own work * Description: Container where you can add lines
阅读全文
摘要:传送门 不要用百度搜这个题目名字 首先发现答案是个大约 次的多项式,所以部分分可以暴力插值 然后考虑正解: 涉及到多项式的式子有时可以将多项式按幂次拆开 如 注意寻找能凑出插值的式子 点击查看代码 #include <bits/stdc++.h> using namespace std
阅读全文
摘要:传送门 整个题解里没有严谨证明的地方……记一下做法好了 发现当 的时候需要找到矩阵乘的循环节 也就是求 于是bsgs求一下 发现T了 首先 \(f(p_i^{c_i}p_j^{c_j})=lcm(f(p_i^{c_i}
阅读全文
摘要:传送门 首先要求NayC每一轮输赢的概率 这个考场上糊了个贪心DP半天不知道哪里假了 朴素贪心错误的原因是最后要求胜率最大而不是期望得分最大 举个例子:在最后一局NayC落后一分,此时若有 她会选择前面一个,而不在乎可能更低的期望得分 关于力士参
阅读全文
摘要:传送门 又是神仙题 想到了期望的线性性拆开但拆开之后不会算 dalao题解 于是这题还真是个点分治 考虑如何期望的线性性 发现每个点的贡献就是这个点在最后形成的点分树中的期望深度 于是枚举每个点,计算这个点成为当前点的祖先的概率 注意到对于每个点对 , 成为
阅读全文
摘要:传送门 挺神仙的题,边界极其恶心 关于求所有情况中最小值的和:考虑转化为统计最小值 的方案数,并对 求和 关于图上对权值和的期望一类问题的处理雷点: 一定要想好要不要带标号统计!除非不带标号的处理思路已经非常清晰否则还是尽量带上标号吧
阅读全文
摘要:传送门 首先转化成一个能做的形式: 若一个数的循环节不为 则不可选 若一个数的循环节为 则仅有最小表示可选 然后考虑容斥出循环节为 的数的个数 令 为循环节为 的约数的数的个数, 为循环节恰好为 的数的个数
阅读全文
摘要:传送门 尝试手推exLucas无果,果断数据结构暴力 将式子写出来发现每个值的每次变化差值都只有1 所以线性筛分解质因数扔到线段树上暴力维护即可 复杂度略大于 点击查看代码 #include <bits/stdc++.h> using namespace std; #def
阅读全文
摘要:传送门 又一道神题…… 先扔一个坑在这里 类菲波那切数列(满足 f(n+m) = f(n+1) * f(m) + f(n) * f(m-1)) 都是满足 gcd(f(x) , f(y)) = f( gcd(x,y) )的 dalao题解 首先打表可以找到 的递推式(当然像上面题解一样直接
阅读全文
摘要:传送门 这都什么神题啊 建议复习同余的基本性质 讲的很好的题解可惜有若干个地方是错的 发现模数不是质数,但模数肯定不含2这个质因子 所以将模数质因数分解之后每个 都是有原根的 于是尝试对每个 都做一遍然后crt合并 于是现在我们面临若干形如 \
阅读全文
摘要:传送门 很神仙的题 发现要求的东西是多重集排列的形式,拆不开式子 暴力可以枚举值域 然后考虑正解: 是个「可重集排列转组合数路径方案DP」 发现 \(\binom {a_i+a_j+b_i+b_j+c_i+c_j}{a_i+a_j,b_i+b_j,c_i+c_j}=\binom {a_i+a_j+b
阅读全文