随笔分类 -  题解

摘要:容易发现一个合法的数是由一个 \(n\) 位全为 \(1\) 的数和至多 \(8\) 个全部由 \(1\) 组成,位数小于等于 \(n\) 的数相加得来的。 设 \(g_i\) 表示位数小于等于 \(n\) 的完全有 \(1\) 组成的数中 \(mod\ P=i\) 的数的数量,这个是容易求的,找一 阅读全文
posted @ 2026-03-30 20:02 Link-Cut_Trees 阅读(2) 评论(0) 推荐(0)
摘要:设 \(f_{i,j,0/1,0/1}\) 表示以 \(i\) 为根的子树中,选了 \(j\) 个点,\(i\) 有/没有被选择, \(i\) 有/没有被覆盖的方案数。 转移: \[\begin{array}{lr} f'_{u,i+j,0,0}=\sum_{v\in son(u)} f_{u,i, 阅读全文
posted @ 2026-03-30 19:25 Link-Cut_Trees 阅读(3) 评论(0) 推荐(0)
摘要:神仙题。 考虑分治,把当前矩阵较长的边平分成两半,把矩阵切开的那条线上的点更新在这个矩阵内的询问,然后继续分治。 正确性是显然的,时间复杂度为 \(T(n)=2T(\frac n2)+n^{\frac32}\log n\),使用主定理得出 \(T(n) = \Theta(n^{\frac{3}{2} 阅读全文
posted @ 2026-03-30 19:23 Link-Cut_Trees 阅读(3) 评论(0) 推荐(0)
摘要:首先有一个结论:如果所有圆都在上面(或下面),把点按照 \(x\) 坐标排序后,一定有一种最优方案使得每个圆只覆盖一段连续的区间。 画几个图,感性理解一下,会发现如果有更优的,那么两个圆的半径就不一样了,严谨证明我不会。 先按照 \(x\) 坐标排序,用 \(DP\)。设 \(f_{i,j,k}\) 阅读全文
posted @ 2026-03-25 22:01 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:考虑使用费用流。把一个点拆成两个,表示入和出,因为每个点要被恰好经过一次,所以每个点都应该是进一次,出一次,那么 \(s\) 向所有出点连边,费用为 \(0\),流量为 \(1\),所有入点向 \(t\) 连边,费用为 \(0\),流量为 \(1\)。 然后把移动考虑进来。瞬移相当于直接进入某个点, 阅读全文
posted @ 2026-03-25 21:47 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:先考虑 \(n\) 个点的一棵树有多少种方案。设当前是第 \(i\) 次加点,则有 \(i\) 种方法把这个点加进来,因为第一次有一种方案,每加一个点就多一个分支。所以按照这个画法 \(n\) 个点的树有 \(n!\) 种方案。 考虑差贡献,对于一条边,在祂两边的所有点能互相产生贡献。 把第一天长出 阅读全文
posted @ 2026-03-25 19:20 Link-Cut_Trees 阅读(5) 评论(0) 推荐(0)
摘要:先考虑 \(R=1,C\le5\times10^5\) 怎么做。可以用莫队+桶维护每个 \(P\) 的数量,时间复杂度 \(\mathcal O(C\sqrt C)\)。 考虑 \(R,C\le200\) 怎么做。对于两个询问 \((x1_i,y1_i,x2_i,y2_i)\) 和 \((x1_j, 阅读全文
posted @ 2026-03-24 22:37 Link-Cut_Trees 阅读(3) 评论(0) 推荐(0)
摘要:根据模数猜测是 \(NTT\)。 设 \(g_i\) 表示钦定 \(i\) 种颜色有 \(S\) 个,其它不管的方案数,有 \(g_i=C_m^i\frac{n!}{(S!)^i(n-iS)!}(m-i)^{n-iS}\),设 \(f_i\) 表示恰好 \(i\) 种颜色有 \(S\) 个,有 \( 阅读全文
posted @ 2026-03-24 22:28 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:考虑对于一个大小 \(x\) 如何判断是否合法。 有结论:子树大小是 \(x\) 的倍数的点的数量一定要是 \(\frac nx\)。 规定:称 “子树大小是 \(x\) 的倍数的点”为 \(A\) 类点。 必要性 首先,如果 \(A\) 类点的数量小于 \(\frac nx\),那么一定不可能。使 阅读全文
posted @ 2026-03-23 20:16 Link-Cut_Trees 阅读(3) 评论(0) 推荐(0)
摘要:挺简单的一道题目,代码实现比较复杂。 第一问 每一行,每一列用 \(set\) 维护,直接模拟 第二问 考虑贪心,一对点删了一定比没删优,所以可以先枚举那些点对可以直接删除。 然后考虑一对点删除了之后又那些点对可能会从不能删变成能删。 显然,对于删掉的两个点,祂们分别向上,向下,向左,向右碰到的第一 阅读全文
posted @ 2026-03-23 19:49 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:首先要找到一个策略,能用最少步数揭开这个东西。 发现对于任意 \(x\),第 \(1\) 到 \(x-1\) 个环都不受 \(x\) 的影响。 假设我们要解 \(n\) 个环,可以先把前 \(n-2\) 个环卸下,把第 \(n\) 个环卸下,把前 \(n-2\) 个环装上,把前 \(n-1\) 个环 阅读全文
posted @ 2026-03-23 17:25 Link-Cut_Trees 阅读(7) 评论(0) 推荐(0)
摘要:容易发现,除了移动距离最近的那一次,剩下的每一次都会把 \(w\) 个货物运会 \(1\) 号点。 考虑 \(dp\) 设 \(f_{i,j,k}\) 表示在后 \(i\) 个中运货物,目前装了 \(j\) 个,移动了 \(k\) 步的最大价值。 转移 \(f_{i,j,k}=\left\{\beg 阅读全文
posted @ 2026-03-20 22:18 Link-Cut_Trees 阅读(3) 评论(0) 推荐(0)
摘要:容易写出 \(\mathcal O(n^2)\) 的 \(dp\):设 \(f_{u,i}\) 表示在 \(u\) 的子树内选数,最小的数是 \(i\) 能选最多的个数。转移:\(f_{u,\min(i,j)}=\max(f_{u,i}+f_{v,j})\)。 考虑把 \(u\) 选上 \(f_{u 阅读全文
posted @ 2026-03-20 22:04 Link-Cut_Trees 阅读(7) 评论(0) 推荐(0)
摘要:注意到地图上最多能放 \(8\) 个局部极小值,考虑 \(dfs\) 出所有放置局部极小值的地图,输入中给定的局部极小值的点再这个地图中也一定是局部极小值,其它不管。 在当前地图中,我们定义局部极小值点为这个点在这张地图中必须成为局部极小值。 然后对这个图做 \(dp\),设 \(f_{i,j}\) 阅读全文
posted @ 2026-03-18 22:03 Link-Cut_Trees 阅读(2) 评论(0) 推荐(0)
摘要:考虑使用分块。 假设有一个修改 \(l,r,t\),那么所有在 \([l,r]\) 之间的 \(i\),祂的值会变大 \((i-l+1)\times t\),即 \(i\times t+t-l\times t\),这个可以拆成 \(i\times t\) 和一个常数。 在同一个块内,考虑两个点 \( 阅读全文
posted @ 2026-03-18 21:53 Link-Cut_Trees 阅读(2) 评论(0) 推荐(0)
摘要:首先,期望总结点个数等于每个点有标记的期望相加,这是期望的可加性。 那么考虑拆贡献,枚举一个点 \(u\),用矩阵乘法优化 \(DP\) 计算祂的期望。 设状态: \(f_{i,1}\) 表示操作了 \(i\) 次,\(u\) 祖先没有懒标记,\(u\) 没有懒标记的期望。 \(f_{i,2}\) 阅读全文
posted @ 2026-03-18 21:31 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:把一个长度为 \(x\) 的连续段变成一个数 \(x\),这样就得到了一个序列,每次可以选择连续的 \(3\) 个数 \(a_i,a_{i+1},a_{i+2}\)(或 \(2\) 个),把祂们合成一个数 \(a_i+a_{i+2}-a_{i-1}\),代价为 \(a_i\),可以操作无限次,求最小 阅读全文
posted @ 2026-03-16 17:24 Link-Cut_Trees 阅读(37) 评论(0) 推荐(0)
摘要:观察数据发现有 \(E_1=1\) 和 \(E_1=2\) 的数据。 那么分类讨论 当选的节点数量为 \(1\) 时: 直接枚举选定的点,然后计算。 当选的节点数量为 \(2\) 时: 设只选 \(u\) 时的答案为 \(z_u\),则选两个点 \(u_1,u_2\) 的代价为 \(\frac{z_ 阅读全文
posted @ 2026-03-16 17:20 Link-Cut_Trees 阅读(5) 评论(0) 推荐(0)
摘要:大分讨。 首先有结论 \(5k\) 一下的分数除了 \(5k-1\) 都可以用两次凑出来(不打红心) 以下用 \(num\) 代表数字,\(heart\) 代表红心。 \(num\ num\ num\) 前两个至少有一个不是 \(3\) 倍。 把前两个合起来,最有一个只能是偶数,单独算。 前两个都是 阅读全文
posted @ 2026-03-12 22:05 Link-Cut_Trees 阅读(4) 评论(0) 推荐(0)
摘要:设当前的密室第 \(i\) 个转盘初始为 \(c_i\)。 \(a,n\) 很小但是场上看不到,考虑枚举两个转盘,设他们为 \(i,j\),考虑判断祂们是否合法。 容易列出方程 \(\begin{cases}x\equiv c_i\pmod {b_i}\\x\equiv c_j\pmod {b_j} 阅读全文
posted @ 2026-03-12 21:41 Link-Cut_Trees 阅读(2) 评论(0) 推荐(0)