做题记录 26.4.8

\(\textcolor{purple}\odot\) P4313 文理分科

每个 \((i,j)\) 建立一个点,\(S\)\(p_{i,j}\)\(a_{i,j}\) 的边,\(p_{i,j}\)\(T\)\(b_{i,j}\) 的边

对于 \(a\) 相同的限制,每个 \((i,j)\) 再建立一个 \(u_{i,j}\)\(S\)\(u_{i,j}\)\(as_{i,j}\) 的边,对于每个和 \((i,j)\) 相邻的位置(含本身) \((x,y)\)\(u_{i,j}\)\(p_{x,y}\)\(+\infty\) 的边

\(b\) 的一侧同理

答案为 \(\sum a+\sum b+\sum as+\sum bs\) 减去最小割

代码

参考

\(\textcolor{purple}\odot\) AT_abc332_g [ABC332G] Not Too Many Balls

直接最大流建图方式显然,且难以优化,考虑转最小割

\(A=[1,n]\)\(B=[1,m]\),则答案为

\[\min_{S\subseteq A} \min_{T\subseteq B} \left(\sum_{u\in S}a_u+\sum_{v\in T} b_v+\sum_{u\in A/S}u\times \sum_{v\in B/T}v\right) \]

枚举 \(k=\sum_{u\in A/S}u\),对于每个 \(k\) 预处理 \(\sum_{u\in S}a_u\) 的最小值(容易做到 \(O(n^3)\)),则 \(\sum_{v\in T} b_v+\sum_{u\in A/S}u\times \sum_{v\in B/T}v=\sum_{v\in T}\min(b_v,k\times v)\),从小到大枚举 \(k\),容易维护这部分的值

时间复杂度 \(O(n^3+m)\)

代码

参考

相似题:\(\textcolor{purple}\odot\) AT_arc125_e [ARC125E] Snack \(\quad\) 代码

\(\textcolor{black}\odot\) CF1250K Projectors

先将时间轴离散化到 \([1,t]\)

每个时刻建立一个点 \(p_i\),源点向 \(p_1\) 连容量 \(y\) 的边,\(p_t\) 向汇点连容量 \(y\) 的边,每单位从源点到汇点的流量表示一台普通投影仪的使用情况

每个 \(p_i\)\(p_{i+1}\) 连容量 \(x+y-\delta_i\) 的边,其中 \(\delta_i\) 表示 \((a,b)\)\((p,q)\) 中覆盖了 \((i,i+1)\) 的数量

每个 \(p_i\)\(q_i\) 连容量 \(1\) 的边

合法当且仅当网络满流

构造方案是容易的

代码

参考

\(\textcolor{purple}\odot\) P14832 [THUPC 2026 初赛] Unpair Ampere

建立 \(2n\) 个点 \(p_i\)\(p'_i\)

考虑最小割,若 \(i\) 是用电设施,则割开 \((p_i,p'_i)\) 表示其同时和两种发电厂相连,否则若割开 \((S,p_i)\) 则表示选择第一种,否则割开 \((p'_i)\) 表示选择第二种

\(i\) 是用电设施,则连接 \((p_i,p'_i)\),边权 \(a_i\)

\(i\) 是太阳能的,则连接 \((S,p_i)\) 边权为 \(V+a_i\)(其中 \(V\) 为一个较大值),连接 \((p_i,p'_i)\) 边权为 \(+\infty\),连接 \((p'_i,T)\) 边权为 \(V\)

火力部分同理

对于每条边 \((u,v)\)\((p_u,p_v)\)\((p'_v,p'_u)\) 边权为 \(+\infty\)

答案为最小割减去发电厂数乘以 \(V\) 的积

时间复杂度 \(O(n^2(n+m))\)

代码

参考

posted @ 2026-04-09 07:21  Hstry  阅读(4)  评论(0)    收藏  举报