摘要: 小清新 prufer 序列。 > 给定 $n,m$,求 $n$ 个点且最大度数为 $m$ 的有标号无根树个数。 看到度数,不难想到 prufer 序列。 众所周知,prufer 序列给出了长度为 $n-2$ 值域为 $n$ 的序列与带标号无根树的双射。某个点的度数为 $d_u$,那么 $u$ 在 p 阅读全文
posted @ 2023-07-21 15:44 Ender_32k 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 目前为止我是 Luogu 上最优解,不保证后面会不会被神仙同学刷下来,比如 @sinsop90。 upd : 现在不是了,@JWRuixi 用循环展开把我爆踩/ll。 令 $a_{i,0}$ 表示第 $i$ 层上面那个门,$a_{i,1}$ 表示右边的门,$b_{i,0/1}$ 分别表示**它们连向 阅读全文
posted @ 2023-07-21 08:26 Ender_32k 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 这种点对移动互相感染的题,一般可以建笛卡尔坐标系。每个点 $i$ 坐标为 $(V_i,X_i)$,若有两个点 $a,b$ 的相遇时间为 $\dfrac{X_a-X_b}{V_b-V_a}$,即 $-k_{ab}$。 所以当且仅当两个点连接直线的斜率为负数时,两个点会在时间 $t_{ab}=-k_{a 阅读全文
posted @ 2023-07-21 08:26 Ender_32k 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 首先如果一开始 $A$ 和 $B$ 相同,可以直接输出 $0$。 否则 $O(n^2)$ 枚举一个被操作的叶子 $x$,和 $x$ 接到了的 $y$ 点,此时 $x$ 不能再被操作,所以将其当作新树 $A'$ 和 $B$ 的根节点。 由于操作是作用于叶子的,所以一个非叶节点想要被操作,当且仅当其所有 阅读全文
posted @ 2023-07-21 08:26 Ender_32k 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 考虑先手操作完后得到的序列为 $b_i$,后手如何操作得到最大答案。 由于不互质的数不能交换,所以任意一对 $i<j,\text{gcd}(b_i,b_i)\neq 1$,后手操作后相对顺序不变。 所以可以枚举每对不互质的数,编号小的往大的连边,然后用优先队列跑最大拓扑序。 再考虑先手如何操作。 容 阅读全文
posted @ 2023-07-21 08:26 Ender_32k 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 神仙题。 由于时间限制 $5\text s$,我们可以整点怪的,比如根号分解质因子。 但是直接分解是 $O(n\sqrt w)$ 的,值域为 $w$ 即 $10^{10}$,肯定会炸。 毛估估一下,如果需要分解质因数,大概只能分解到 $O(\sqrt[3]{w})$ 的质数。 我们把小于 $\sqr 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 经典题。 考虑 dp,然后发现你根本 d 不动。 冷静思考,发现原因在于,无法在较小的复杂度内确定选数的状态。 遇到这种情况可以考虑容斥。设 $f(i)$ 表示强制选 $i$ 个位置满足 $|p_j-j|=k$。 显然 $\text{ans}=\sum\limits_{i=0}^n(-1)^if(i 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(5) 评论(0) 推荐(0) 编辑
摘要: sweet tea. 手玩一下发现「交换」的性质是具有传递性的,所以考虑一个 $O(n^2)$ 做法: 枚举每个点对,如果满足交换条件,则连双向边。显然一个连通块内的点可以互相交换,而不同连通块之间互相独立。答案就是 $\prod\limits_{i=1}^m\dbinom{size_i}{s_{i 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 简单题。 发现 $m$ 很小,所以一个箱子可以用一个二进制数 $a_i$ 表示,值域 $w=2^{20}$。然后就变成取出若干个 $a_i$ 使得或起来为全集的方案数。 将所有 $a_i$ 按位取反,即求若干个 $a_i$ 与起来为空集的方案数,就是[这题](https://www.luogu.co 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(9) 评论(0) 推荐(0) 编辑
摘要: [更好的阅读体验。](https://www.cnblogs.com/Ender32k/p/17125914.html) 假设值域为 $v$ 即 $10^5$,显然每个质因数 $p$ 独立,考虑计算每个 $p$ 对答案的贡献。 $p$ 对答案的贡献次数为 $\sum\limits_{S\subset 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 好像挺神奇的,也可能是我菜。 以下称前 $n-1$ 条边为「树边」,因为它们组成一棵树;后 $n-1$ 条边为「回边」,因为它们由树节点回到根。 就是对于一个询问,如果 $v$ 在 $u$ 的子树内,发现无论如何答案都要包括 $u\to v$ 的只经过树边的路径。那么只走这条路径一定是最优的,直接维 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(47) 评论(0) 推荐(0) 编辑
摘要: upd 2023/3/16:更改了时间复杂度的错误。 ~~其实是暴力。~~ 因为这是模板题,所以模板的前置知识也要讲。 - 前置知识:FWT 计算或卷积。 这里只需要掌握快速计算或卷积的方法,所以内容较少。如果向了解更多(比如异或卷积)的话可以去 [P4717](https://www.luogu. 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 太神仙了。 直接子集卷积肯定是不行的,1s 的时限和 62MB 的空间摆在那里。 那就要考虑使用模 $4$ 的性质乱搞了。 我们考虑给每个 $i$,不管它符不符合条件,赋一个权值。如果 $i\ \text{and}\ j\neq 0$,它对答案是没有贡献的,否则它能贡献到 $i\ \text{or} 阅读全文
posted @ 2023-07-21 08:25 Ender_32k 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 考虑先手必胜的充要条件。 实际上,只要 $n$ 为奇数或者本质不同排列为偶数时先手必胜。 $n$ 为奇数时,先手必胜,答案就是 $k^n$。 $n$ 为偶数时,令 $a_i$ 为第 $i$ 个字符出现次数,$\sum\limits_{i=1}^ka_i=n$。反面考虑,我们相当于求 $\dbinom 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(19) 评论(0) 推荐(0) 编辑
摘要: ~~好像不是很难。~~ 有一个显然的状压,设 $f_S$ 表示划分完城市集合 $S$ 之后的答案。 $$f_S=\sum\limits_Tf(S\backslash T)\frac{\sum\limits_{i\in T}w_i}{\sum\limits_{i\in S}w_i}$$ 要求 $T$ 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 难点在于读题。 由于每个人有 $6$ 种选法,答案其实就是某个人赢两次的方案数。 由于三个人本质没有差别,并且一种方案至多只有 $1$ 个人赢两次。所以不妨设 A 赢了两次,答案就是方案数乘 $3$。 考察 A 对于 B 和 C 的比赛,每个人的投票结果,第 $i$ 个人的投票为 $P_i$ 和 $ 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这东西在线不太能做,考虑离线扫描。扫描右端点 $r$,我们对每个位置 $l$ 维护一个 $p_l$ 表示最小的 $p$ 使得 $[l,p]$ 是 $[l,r]$ 的合法子区间。 考虑如何维护 $p_l$。考虑新加入的右端点 $r$,加入一个数 $a_r$,上一次出现的位置为 $lst_{a_r}=c 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 这个涂色很容易让人想到均摊的 set 维护,但是有可能修改同一个位置,不太可做。 同样地,我们考虑只带插入不同位置的情况。 考虑一个线段树做法,直接维护整行格子的权值和以及黑色格子的个数。考虑一个修改 $(i,j)$ 相当于区间覆盖 $[i,k]$ ,其中 $[i,k]$ 中修改前白色格子的数量为 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 好神奇的做法,我称其为猪猪(猪笼原理)分治。 记 $0,1,?$ 的个数分别为 $a,b,c$。有一个显然的 $O(2^c)$ 做法,对每个 $?$ 枚举其为 $0/1$ 即可。 然后我们考虑只有 $?,1$ 的情况,把所有 $?$ 当成 $0$,答案就是一个超集和;同理,对于只有 $?,0$ 的情 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(8) 评论(0) 推荐(0) 编辑
摘要: ### 题意: 给定长度为 $n$ 的序列 $a_i$,$m$ 次操作,操作分为 $3$ 种: 1. 给定两个整数 $l,r$,翻转区间 $[l,r]$。即 $a_l,a_{l+1},...,a_r\to a_r,a_{r-1},...,a_l$。 2. 给定三个整数 $l,r,d$,对于 $i\i 阅读全文
posted @ 2023-07-21 08:24 Ender_32k 阅读(15) 评论(0) 推荐(0) 编辑