2026暑假总结

每天晚上刷B站有点刷腻了,干脆来写一写总结

还没补的题就先鸽着,补过了的题尽量都写一下

6-24/6-26

两天做了11道构造,如何呢

当然还是有几道好题的,得详细讲一下

Make It Connected 分类讨论一下,发现图除了恰好为两个不连通的完全子图,其他时候答案最大为 \(2\),否则把小子图一个一个加到大子图里即可

Rectangular Congruence \(\Large\star\)

我们发现在 \(a<b,c<d\)\(ac+bd\not\equiv ad+bc\pmod n\) 恒成立,证明移项后因式分解得到 \((b-a)(d-c)\) 显然不为 \(0\)。又因为 \(n\) 是质数,\((b-a)(d-c)\) 同样不可能是 \(n\),所以原式成立

那么令 \(a_{i,j}=ij\bmod n\),就可以满足前两个条件,再来考虑主对角线上的特值

我们把所有 \(a_{i,i}\) 全部加上 \(b_i-i^2\),即可满足条件,为了使条件二仍然成立,可以把所有 \(a_{i,j}\) 加上同样的数来抵消,即 \(a_{i,j}=(b_i+ij-i^2)\bmod n\)

Equal Binary Subsequences 首先特判掉无解。对于每一对相邻下标,如果 \(s_{2i-1}\not=s_{2i}\),则交替取出其中的 \(0\)\(1\),得到的一定是一个 \(0101\) 交替的序列,循环左移之后变成了 \(1010\) 交替,此时显然有 \(s_{2i-1}=s_{2i}\),奇数位子序列等于偶数位子序列

Grid Xor 将网格按照对角线交替的方式分成两半,此时有贡献的格子画个图容易看出,随便找个规律带进去算就行了

Range = √Sum 令前 \(n-1\) 位为 \(4n+4\),第 \(n\) 位为 \(4n+5\),那么 \(\sqrt{\text{sum}}=2n+1\),然后对与每一对 \((i,n-i+1)\),前者减去 \(n-i+1\),后者加上 \(n-i+1\),可以刚好满足题目要求

Tokitsukaze and Two Colorful Tapes\(a_i\)\(b_i\) 连边,图一定形如若干个环,为使答案最大,环内一定是大小交替放置。大小为 \(m\) 的环贡献为最大的 \(\lfloor\frac{m}{2}\rfloor\) 个数的和减去最小的 \(\lfloor\frac{m}{2}\rfloor\) 个数的和。易得答案为 \(2(\sum \lfloor\frac{m}{2}\rfloor)(n-\lfloor\frac{m}{2}\rfloor)\)

Equal Tree Sums \(\Large\star\)

hzk 学长讲的题

题目要求 \(s_1-s_u = s_{v_1}=s_{v_2}=\dots=s_{v_k}\),那么有 \(a_u=s_u-\sum s_v=s_u-(d_u-1)(s_1-s_u)=s_1 - d_u(s_1-s_u)\)

\(s_1=0\),我们只需要做到 \(s_u=-s_v\) 即可。那么容易想到黑白染色,黑点 \(s_u=1\),白点 \(s_u=-1\)。代回去得到黑点 \(a_u=d_u\),白点 \(a_u=-d_u\)

Half Queen Cover 设答案为 \(k\),那么要求 \(k\ge 2(n-k)-1\),得到 \(k_\min=\frac{2n+1}{3}\),构造随便手完一下就行了

Hemose on the Tree 反证法易证答案不小于 \(n\),猜想答案恰好为 \(n\)。把所有根以外的 \(u\)\(u\) 与其父亲的连边权值赋为 \(k,k\oplus n\),那么每个点的 \(\text{dis}\) 一定为 \(0\)\(n\)

Fair Share \(\Large\star\)

对于每一个序列,把第 \(2i\) 位与第 \(2i-1\) 位连边,令其为 A 边

对于每一个数,把第 \(2i\) 次出现与第 \(2i-1\) 次出现连边,令其为 B 边

考虑这样建图后,图一定形如若干个偶环,且环内两种边交替出现,那么对图进行黑白染色即可

原理:A 边保证了每个序列被恰好分成两半,B 边保证了每个数被恰好分成两半

Circular Spanning Tree 特判掉 \((\sum \deg) \bmod 2=1\)\(\forall( \deg \bmod 2=0)\) 两种无解情况。若 \(\forall(\deg\bmod 2=1)\)\(n\) 为偶数,连一个菊花图即可;否则 \(\deg\bmod 2=1\) 的数量为偶数,序列循环左移后分成若干段 \((0,0,\dots 0,1)\),令第一个 \(0\) 为根,段内连成一条链,段首与根相连即可

7-6

王队讲的 LGV 引理和 Matrix-Tree 定理

LGV 引理

下文中的“图”均指 DAG,可以存在重边

\(P\) 为图中的一条路径,\(F(P)\) 为路径中所有边权的积,\(G(u,v)\) 为所有 \(u\)\(v\) 的路径的 \(F(P)\) 之和。特别地,边权为 \(1\) 时,\(G(u,v)\) 代表 \(u\)\(v\) 的路径个数

我们有两个大小均为 \(n\) 且没有相同元素的点集 \(A,B\),分别为起点集与终点集。声明一个大小为 \(n\) 的路径集 \(S\),满足存在 \(T\) 为任意一个 \([1,n]\) 的排列,路径 \(S_i\)\(A_i\)\(B_{T_i}\),且路径间两两没有公共点。显然 \(T\) 若存在则一定唯一

\(R(T)\) 为排列 \(T\) 的逆序对个数

\(n\) 阶矩阵 \(M\)\(M_{i,j}=G(A_i,B_j)\)

那么 LGV 引理的描述为:\(\det(M)=\sum\limits_{S}(-1)^{R(T)}\prod\limits_{i=1}^{n}F(S_i)\)

证明:我不会,但式子的组合意义可以理解为交点个数为 \(R(T)\) 的路径组的答案为后面那个 prod

【模板】LGV 引理

显然,\(G(A_i,B_j)={b_j-a_i+n-1\choose n-1}\)

由于 \(a,b\) 均升序,则合法的 \(T\) 一定为 \(1,2,\dots,n\),所以 \(R(T)\not=0\) 的部分根据组合意义一定可以抵消掉

直接算行列式即可

Turtles

我们发现两条不相交的路径一定是 \((1,2)\to (n-1,m)\)\((2,1)\to (n,m-1)\),而反过来的路径一定相交。令 \(A_1=(1,2),A_2=(2,1),B_1=(n-1,m),B_2=(n,m-1)\)

考虑对于有交点的方案,把其最后一个交点后的部分反转,发现这个东西是一一对应的,且交点数量恰好一奇一偶,可以抵消

那么答案就是行列式 \(M_{1,1}M_{2,2}-M_{1,2}M_{2,1}\)

Matrix-Tree 定理

Matrix-Tree 定理用于解决图的生成树计数问题

无向图形式

\(n\) 阶度数矩阵 \(D\) 为:

\[D_{i,j}= \begin{cases} \deg_i& i=j\\ 0& i\not=j \end{cases} \]

\(n\) 阶邻接矩阵 \(A\) 为:\(A_{i,j}\)\(i\)\(j\) 之间的无向边数量

定义 Laplace 矩阵为 \(L=D-A\)

Matrix-Tree 定理的无向图形式描述为图的生成树个数为 \(\det L_k\)\(L_k\)\(L\) 去掉第 \(k\) 行与第 \(k\) 列且合并剩余部分得到的 \(n-1\) 阶矩阵。对于所有 \(k\in[1,n]\),公式均成立

在实际计算中,为了方便可以在行列式计算中将 \(n\) 减去 \(1\),视为去掉第 \(n\) 行和第 \(n\)

证明:我不会啊

有向图根向树形式

即生成树每条边都从儿子指向父亲

\(\deg_i\) 改为 \(\text{outdeg}_i\),其余不变

有向图叶向树形式

即生成树每条边都从父亲指向儿子

\(\deg_i\) 改为 \(\text{indeg}_i\),其余不变

Cayley 公式

\(n\) 个点的有标号无根树有 \(n^{n-2}\)

将其等价为 \(n\) 个点的完全图生成树个数,使用 Matrix-Tree 定理易证

7-10

杂题 + 广义串并联图 + SegBeat,数据结构就直接 skip 了

Problem Scores

奇妙思维题。显然最严格的限制为前 \(k+1\) 个数大于后 \(k\) 个数。考虑 \(k\) 与限制强度的关系,发现 \(k\) 较小时,\(k\) 增长会使限制变严格;\(k\) 较大时,\(k\) 增长会使限制变宽松。那么最严格的限制在 \(k=\lfloor\frac{n}{2}\rfloor\) 时取到,下文记 \(k=\lfloor\frac{n}{2}\rfloor\)

\(\forall a_i=n\),那么任意序列都由这个序列在某些前缀减去 \(1\) 得到的结果。设 \(K=\sum\limits_{i=1}^{k+1}a_i-\sum\limits_{i=n-k+1}^{n}a_i\)\(K\) 初始为 \(n\)

预处理出 \(c_i\) 表示前缀 \(i\) 减去 \(1\) 后对 \(K\) 的影响,显然会使 \(K\) 减少,这就变成了完全背包板子

\(i\) 个物品重量 \(c_i\),有无限个。求总重小于 \(n\) 的方案数

Uplifting Excursion

把所有数加到集合里,然后贪心地删除绝对值较大的数使总和在 \([l-m,l+m]\) 之间

只需要进行简单调整即可使总和恰好为 \(n\)。显然,最优的操作会使总和始终在 \([l-m,l+m]\) 之间,且每个总和只会出现一次。那么每个数只会删除 \(m\) 次,进行值域为 \(m^2\) 的多重背包即可。需要二进制优化

Poborcy podatkowi

\(dp_{u,j\in[0,3]}\) 为在 \(u\) 子树内,\(u\) 点连了一条长度为 \(j\) 的链的最大收益

转移有三种:把 \((u,v)\) 接到 \(dp_{v,3} 上\);把 \((u,v_1),(u,v_2)\) 接到 \(dp_{v_1,0},dp_{v_2,2}\) 上;把 \((u,v_1),(u,v_2)\) 接到 \(dp_{v_1,1},dp_{v_2,1}\)

复杂度爆炸,考虑优化。令 \(f_{i,j\in[0,1]}\) 为考虑了若干个儿子,选择的 \(f_{v,0}\)\(f_{v,2}\)\(i\) 个,选择的 \(f_{v,1}\) 奇偶性为 \(j\) 的最大收益。于是变成 \(O(n^2)\) 的了

把儿子 shuffle 一下,发现 \(i\) 的期望不会超过 \([-\sqrt n,\sqrt n]\),于是变成 \(O(n\sqrt n)\) 的了

广义串并联图

广义串并联图,指没有同胚与大小为 \(4\) 的完全图的子图的无向联通图。也就是说,将所有 \(2\) 度点缩掉后,不存在 \(4\) 个点使它们之间两两有边

有三种广义串并联图方法:

  • \(1\) 度点:把度数为 \(1\) 的点删掉
  • \(2\) 度点:若 \(w\) 只与 \(u,v\) 有连边,则把 \((u,w),(w,v)\) 缩成一条 \((u,v)\)
  • 叠合重边:把两个重边删掉一条

可以证明,一个广义串并联图可以通过这三种方法缩成一个点

生成树

仙人掌加一条边属于广义串并联图。因为一个仙人掌的任意 \(4\) 个点之间最多有 \(4\) 条边,再加一条变成 \(5\) 条,显然不能形成完全图

\(f_x\) \(x\) 在生成树中的方案数,\(g_x\) \(x\) 不在生成树中的方案数

对于各个方法:

  • \(1\) 度点:把 \(f_x\) 乘到答案中
  • \(2\) 度点:边 \(x,y\) 至少有一条边会出现在生成树上,否则中间那个点就不连通了,那么 \(f_w=g_ug_v,g_w=f_ug_v+f_vg_u\)
  • 叠合重边:边 \(x,y\) 不会都出现在生成树上,否则就不是一颗树了,那么 \(f_w=f_ug_v+f_vg_u,g_w=g_ug_v\)

用 map 实现转移即可

7-11

杂题

Rearranging

显然,在初始排列确定后,任意两个不互质的数相对位置已经确定,我们将其连一条边,形成一个 DAG。后手对这个图用优先队列做拓扑排序即是最优策略

那么先手的操作可以转化成给无向图定向,使拓扑序尽可能小,可以直接从小到大连边求生成树,其他边都连反向即可

Travelling Salesperson

要求经过所有点,路径长至少为 \(n\),考虑构造长度恰好为 \(n\) 的方案。对于每个点记录一条路径,维护变色的那个点(没有则记为末尾)

每次加入一个点,把新点加到变色点后面,因为存在变色,新点一定和两条边中的一条颜色相同,在那边加上即可。使用双向链表维护

阿尔塔尔 2

发现最多进行两次传递一定可以满足条件,使用数学归纳法容易证明。

然后把 \([1,n]\) shuffle 一下,逐项添加点。如果根有连向它的边或深度为 \(1\) 的点有连向它的边就直接连。否则就把它设为根,原来的根和深度为 \(1\) 的点变成新的深度为 \(1\) 的点

TEST_69

很久以前见过的题,但是没写过

容易发现如果操作后 \(a_i\) 变化了,那么他至多变成 \(\lfloor\frac{a_i}{2}\rfloor\),也就是说一个数最多存在 \(\log\) 次有效操作。而当 \(x\) 整除区间的 \(\text{lcm}\) 时,操作全部无效。于是开一个 tag 记录 \(\text{lcm}\),均摊是 \(O(n\log n)\)

7-13

WQS 二分 + 杂题

WQS 二分

用于解决一类恰好选择 \(k\) 个特殊物品的问题

\(f_x\) 为恰好选择 \(x\) 个特殊物品时的答案。如果题目满足 \((x,f_x)\) 是一个凸壳,即斜率单调,就可以使用 WQS 二分

我们二分一个 \(\Delta\),把特殊物品的贡献加上 \(\Delta\) 然后做无个数限制的 dp,并同时求出在贡献改变后这个最优解选择了多少个特殊物品。如果数量不对,就调整 \(\Delta\) 继续二分。可以证明,在满足凸壳条件下,这样做是正确的

Tree I

板子题。二分后把所有白边权值加上 \(\Delta\),跑 Kruskal,求出生成树中有多少白边。白边多了就调大 \(\Delta\),少了就调小 \(\Delta\)。Kruskal 时需要优先选择白边,否则需要小数二分,可能会出现精度误差

林克卡特树

考虑题目的要求可以转化为:选出 \(k+1\) 条不相交的链(可能为点),求最大总和

\(f_{i,j,l=0/1/2}\) 为:在子树 \(i\) 中,已经有 \(j\) 条完整的链了,且点 \(i\) 的度数为 \(l\) 时的答案。转移直接分类讨论暴力合并即可,复杂度为 \(O(nk^2)\)

然后发现在 \(i\) 确定时,\(f\) 数组关于 \(j\) 是凸的,于是可以进行 WQS 二分

二分 \(\Delta\),每选择一条链就把总和减去 \(\Delta\)。得出刚好选择 \(k+1\) 条链时的答案

aliens

由于正方形需要在对角线上,问题可以转化成关于 \((\min(r,c),\max(r,c))\) 的线段覆盖问题,然后每个线段至少要被一个区间完全覆盖,令 \((\min(r_i,c_i),\max(r_i,c_i))\)\((l_i,r_i)\)

寻找一些性质。首先如果两个线段已经有包含关系了,小的那个不会对答案造成影响,可以直接删除,然后剩下的线段排序后所有 \(l\)\(r\) 都是单调递增的

posted @ 2026-07-07 22:30  BluemoonQwQ  阅读(4)  评论(0)    收藏  举报