摘要: 简单题。 树上路径相交有个很经典的性质:如果 \((u_1,v_1),(u_2,v_2)\) 相交,则一定在 \(\operatorname{lca}(u_1,v_1),\operatorname{lca}(u_2,v_2)\) 中更深的那个相交。所以只用看两条路径是否除了这个点没有其他交点即可。 阅读全文
posted @ 2024-03-09 10:33 yinhee 阅读(39) 评论(0) 推荐(0)
摘要: 首先发现行之间的先后顺序之和它在最后一次修改中修改成了什么有关。于是倒序考虑。 倒序考虑一列什么时候可以操作。如果有两行 \(i,j\) 的顺序之前没有被确定,在在这次操作被确定,而且不符合最后顺序的要求,那么这一列就是不能在这个时候被操作的。 于是可以对于每一列,记录还有多少对 \((i,j)\) 阅读全文
posted @ 2024-03-09 10:32 yinhee 阅读(26) 评论(0) 推荐(0)
摘要: 小丑,做这种题做半天。 首先发现有贡献的位置是一个斜正方形,从内到外贡献系数依次递减。先拆成四个部分(四个直角三角形),每次将整个矩形旋转来分别做,最后简单容斥一下。 考虑对于一个直角三角形怎么计算贡献。考虑从它左边的一个三角形转移过来。设定点为 \((i,j)\) 的三角形贡献为 \(f_{i,j 阅读全文
posted @ 2024-03-09 10:31 yinhee 阅读(16) 评论(0) 推荐(0)
摘要: 图论基础题。但是想偏了想了半天。 考虑先对原图做一次 tarjan 求割边。处理 \(c=1\) 的答案。 \(c=2\) 最自然的想法是枚举所有边,断掉,再重新跑 tarjan。但是会超时。但是不难发现,只有 tarjan 建出的 dfs 树上的树边删去时,树的形态有可能改变。 这些边有 \(O( 阅读全文
posted @ 2024-03-09 10:30 yinhee 阅读(9) 评论(0) 推荐(0)
摘要: 同样来自 @Explodingkonjac 学长的讲题。但是我没认真听讲,所以自己想出来了。 原本的想法是设对于每一组分别设 \(dp_{i,j}\) 为当前枚举到第 \(i\) 个位置,已经钦定了 \(j\) 个该组中的人投给自己组的方案数。转移就是枚举有多少人投给 \(i\) 然后容斥。 但是可 阅读全文
posted @ 2024-03-09 10:29 yinhee 阅读(30) 评论(0) 推荐(0)
摘要: @Explodingkonjac 学长讲的做法,题解区有一篇讲这个的,但是感觉细节真的好多…… 我们先尝试构造出来一个合法序列。怎么构造呢?先枚举 \(\sum a_i=s\),然后先将序列 \(a\) 设为 \(\max(p_n,0)\) 个 \(1\) 后面接 \(\max(p_n,0)-s\) 阅读全文
posted @ 2024-03-09 10:28 yinhee 阅读(10) 评论(0) 推荐(0)
摘要: 其实不会反演也可以做。 首先显然要考虑给你每个数个数,怎么计数。最简单的方法是从大枚举到小,设 \(c_i\) 为 \(i\) 的个数,\(f_i\) 为 \(\gcd=i\) 的 \(k\) 元组出现了多少次,则 \(f_i=\binom{c_i}{k}-\sum_j f_{ij}\),就是 \( 阅读全文
posted @ 2024-03-09 10:27 yinhee 阅读(10) 评论(0) 推荐(0)
摘要: ==Ambiguous Encoding。orz Wu_ren。 直接选两个拼成的字符串不好刻画,考虑增量。定义一对合法的字符串 \(S,T\) 满足其中一个是另一个的前缀(这样才可能通过往后面加模式串变一样),每次往当前两个字符串中长度更短的后面塞一个模式串,使得一个字符串仍是另一个的前缀。 容易 阅读全文
posted @ 2024-03-09 10:25 yinhee 阅读(23) 评论(0) 推荐(0)
摘要: orz sinsop90/bx 乌龟和 sinsop 结芬!!! 题意即数最大匹配为 \(k\) 的二叉树个数。数树问题,考虑不断加入子树 dp。但是这题是二叉树,所以可以直接每次将两个并作一个转移。 考虑怎么设计状态:子树 \(siz\) 肯定是要记的,然后最大匹配数也是。发现只记这两个不好转移, 阅读全文
posted @ 2024-03-09 10:23 yinhee 阅读(17) 评论(0) 推荐(0)
摘要: 又是模拟赛题,感觉挺牛的。kkio 场了/bx 首先发现每一次大操作等同于进行一次置换,会形成若干个置换环。根据经典结论得,设这些环长为 \(cyc_i\),则有 \(k=\operatorname{lcm}cyc_i\)。于是考虑在原图中构造若干置换环。 然后通过手玩发现,可以在 \(4\) 步以 阅读全文
posted @ 2024-03-09 10:21 yinhee 阅读(17) 评论(0) 推荐(0)
摘要: 虚高 *2800,放模拟赛 T1 人均切了。 这是 zlt 说的,不是我说的,我还是觉得没那么虚高的。 首先显然是数位 dp。 一个关键点就是怎么计算 \(f_i\times f_{i+1}\)。会发现可以将为 \(4\) 的位置看作 \(0\),否则为 \(1\),则二进制下 \(f_{i+1}= 阅读全文
posted @ 2024-03-09 10:17 yinhee 阅读(20) 评论(0) 推荐(0)
摘要: 虚高 *2800。放模拟赛 T2 人均切了。 先想树的情况怎么做。枚举每个起点,剩下的贡献就是定值。求这个值可以钦定 \(1\) 为根求出所有的 \(siz\),然后枚举 \(i\) 为起点,以 \(i\) 为起点的答案就是 \(\sum siz_i\) 加上 \(i\) 到 \(1\) 路径上,不 阅读全文
posted @ 2024-03-09 10:16 yinhee 阅读(17) 评论(0) 推荐(0)