随机做题-第二弹
书接上回。
构造题先观察:
- 每次操作后,每个点的度数 \(deg_u\) 不变。
- 操作是可逆的。这意味着可以同时操作 \(S,T\),最后相遇在某个状态。
我们声称每个点在 \(S\) 和 \(T\) 中度数相同是有解的充要条件。
构造方法考虑枚举 \(i=1,2,\dots,n\),设 \(i\) 在 \(S\) 中的邻域为 \(A\),在 \(T\) 中的为 \(B\)。
-
若 \(A=B\),直接把 \(i\) 从图上删去。
-
若 \(A \neq B\),由于 \(|A|=|B|\),此时一定能找到 \(u \in A,u \notin B, v \notin A,v \in B\)。
我们现在有两种选择:
- 找到一个点 \(w\) 使得 \(w\) 在 \(S\) 中与 \(v\) 有边,与 \(u\) 无边,然后操作 \((i,u),(v,w)\)。
- 找到一个点 \(w\) 使得 \(w\) 在 \(T\) 中与 \(u\) 有边,与 \(v\) 无边,然后操作 \((i,v),(u,w)\)。
不难发现,如果找不到第一种 \(w\),则一定有 \(deg_v<deg_u\);如果找不到第二种 \(w\),则有 \(deg_u<deg_v\)。
所以两种 \(w\) 必定能找到一种。
用 bitset 模拟上述过程,复杂度 \(O(\frac{n^3}{w})\)。
暴力的做法是每次 ban 掉一条边然后跑费用流。
这样复杂度太高了,考虑优化。我们先随便跑出一个最大权匹配,假设当前边为 \(e=(u,v)\)。
-
若 \(e\) 在不在当前匹配内。直接输出。
-
若 \(e\) 在当前匹配内。考虑删去 \(e\) 后还可以怎么增广。
也就是连接 \((S,T),(T,S)\),然后在残量网络上找到一条从 \(u\) 到 \(v\) 的路径增广。
要找到尽可能长的路径,跑 spfa 即可。
首先,所有情况一定能够通过置换颜色和旋转对称归约到下面两种情况。
- \(0\) 在左上角,\(1\) 在下边,\(2\) 在右边,贡献为 \(2(x_2-x_0+y_0-y_1)\)。
- \(0\) 在左上角,\(1\) 在中间,\(2\) 在右下角,贡献为 \(2(x_2-x_0+y_0-y_2)\)。
现在要解决一个类似三维偏序的问题,先按 \(x\) 扫描线。
先解决第一种情况,考虑维护线段树,每遇到一个 \(0\) 就做前缀修改,遇到 \(1\) 就做后缀修改,遇到 \(2\) 就做单点查询。
然而我们需要保证所有 \(01\) 贡献对的 \(0\) 一定在 \(1\) 之前,这个用类似历史最大值的思想做。
第二种情况严格弱于第一种。随便做做。
广义串并联图。
定义:称图 \(G\) 为广义串并联图,当且仅当 \(G\) 不存在同胚与 \(K_4\) 的子图。
人话:不存在四个点 \(a,b,c,d\) 使得这四点之间存在 \(6\) 条除了端点以外两两不交的路径。
广义串并联图有两个性质:
- \(m \le 2n\) 时,图是平面图。
- 通过重复三种操作可以缩为一个点。
- “删 \(1\) 度点”,删除度数为 \(1\) 的点。
- “缩 \(2\) 度点”,若存在边 \((u,v),(v,w)\),则删除 \(v\) ,连接 \((u,w)\)。
- “叠合重边”,把两条重边变成一条。
回到这题,原图是广义串并联图,考虑按上面的过程,对边进行 dp,计算生成树。
缩边过程中每条边 \(e(u,v)\) 都代表了原图的一个子图,记为 \(T(e)\)。\(T(e)\) 里出现在最终的生成树的部分为 \(T'(e)\)。
设 \(f_e\) 表示 \(T'(e)\) 是一个连通块的方案数,\(g_e\) 表示 \(T'(e)\) 是两个连通块(一个包含 \(u\) 一个包含 \(v\) )的方案数。
转移分三种。
- “删 \(1\) 度点”,此时 \(T'(e)\) 只能是一个连通块,\(ans \larr ans \times f_e\)。
- ”缩 \(2\) 度点“,此时 \(f_{e'}=f_{e1}f_{e2},g_{e'}=f_{e1}g_{e2}+g_{e1}f_{e2}\)。
- "叠合重边",此时 \(f_{e'}=f_{e1}g_{e2}+g_{e1}f_{e2},g_{e'}=g_{e1}g_{e2}\)。
注意上面转移是围绕”选出来的部分联通且无环“进行的。
用队列维护 \(deg \le 2\) 的点,模拟上述过程。
QOJ9278 Linear Algebra Intensifies
接上文。
注意到矩阵差分后行列式相等。
于是每次操作可以变成 \(b_{l,l},b_{r+1,r+1}\) 加一,\(b_{l,r+1},b_{r+1,l}\) 减一。
我们把 \(b\) 看作矩阵树定理中的 Laplace 矩阵。每次操作相当于连边 \((l,r+1)\),答案是图 \(G\) 的生成树个数。
我们套用上一题的做法,对 \(G\) 在缩边的时候 dp。
由于 \(G\) 不一定是广义串并联图,所以最后会剩下一个图 \(G'\)。
现在问题变成,每条边选有 \(f_e\) 的权值,不选有 \(g_e\) 的权值,求 \(G'\) 每个生成树的权值和。
把每条边的权重设为 \(\frac{f_e}{g_e}\),套用矩阵树定理,把行列式 \(\times \prod g_e\) 得到答案。注意特判 \(g_e=0\) 的情况!!!
记 \(G'=(V',E'),|V'|=n',|E'|=m'\),求行列式是 \(O(n'^3)\) 的,为什么能过呢?
考虑 \(n'\) 的规模,不难发现进行一次缩边操作后 \(k=m-n\) 的值不增。
而 \(G'\) 中每个点的 \(deg>2\),也就是 \(m'=\frac{\sum deg'_u}{2} \ge \frac{3}{2}n'\)。得到 \(n' \le 2k \le 600\)。
显然破盾以后用 \(\max b_i\) 攻击最优,记 \(mx=\max b_i\)。
形式化我们要解决的问题:选出可重集 \(S\),满足在 \(\sum c_i \ge q\) 的前提下,最小化 $|S|+\lceil \frac{p-\sum a_i}{mx} \rceil $。
带分母的式子不好处理,写成 \(\lceil \frac{p+\sum (mx-a_i)}{mx} \rceil\)。经典“贡献-代价”模型,直接背包。
注意有可能不破盾直接杀,此时答案为 \(\lceil \frac{p}{\max a_i} \rceil\)。
好题。
观察一:过程中一束激光的强度单调不降。
观察二:一束激光如果经过了 \((i,j)\),那么它不会再对 \(s \le s_{i,j}\) 的位置产生影响。
我们按 \(s_{i,j}\) 从小到大确定每个 portal 的 \(t_{i,j}\)。(这样就不会有前效性)
记当前进入 \((i,j)\) 的激光强度总和为 \(sum_{i,j}\),数量为 \(cnt_{i,j}\)。那么 \(t_{i,j}=(cnt_{i,j}s_{i,j}-sum_{i,j}) \mod 2\)。
思考如何计算 \(sum,cnt\)。考虑一条激光发射的过程:从 \((i,j)\) 出发,经过若干个已确定的 portal,最后到达某个未确定的 portal。
用并查集合并路径,把所有成环的或者逃逸的路径连向特殊点。
把贡献挂在区间最小值上,设 \([pre_i,suf_i]\) 为 \(a_i\) 是最小值的最大区间。发现贡献的值只和 \(a_i,\max(pre_i,l),\min(suf_i,r)\) 有关。
拆贡献然后扫描线,分讨 \(pre_i,l\) 和 \(suf_i,r\) 的大小关系。
P9923 [POI 2023/2024 R1] Przyciski
网格选点直接建图。
先考虑构造偶数解,此时图上一定存在一条回路。进一步,一定存在一个环。
如果找不到,说明图是个森林。
直接找到每棵树,从下往上构造即可。
P3488 [POI 2009] LYZ-Ice Skates
套用 Hall 定理,当然可以带权。
单点修改,查询 \([\forall T \sub \{1,2,\dots ,n\},\sum_{i\in T}a_i \le k \cdot |\bigcup_{i \in T}[i,i+d]|]\)。
最劣情况 \(T\) 肯定是一个区间,改写成 \(\forall [l,r] ,\sum_{i=l}^ra_i \le k(r-l+1+d)\)。
令 \(sum_{l,r}=\sum_{i=l}^r a_i-k\),改写成 \(\forall[l,r],sum_{l,r}\le kd\)。
线段树维护最大子段和。
设 \(f_i\) 表示考虑前 \(i\) 位的方案数。
转移枚举 \(b_i\) 选什么,容斥,钦定 \(j,j+1,\dots,i\) 都选 \(x\)。
改写一下转移式,\(f_i=\sum _{j=1}^i (-1)^{i+j} \cdot \min_{k=j}^i a_k \cdot f_{j-1}\)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】