首页 > 其他分享 >CF1815C

CF1815C

时间:2023-04-16 09:45:37浏览次数:38  
标签:... text 边权 上限 下限 CF1815C

1 解法

设 \(f_i\) 为 \(i\) 最多出现多少次,那么一个限制 \((u,v)\) 可以写成 \(f_u \leq f_v +1\),把 \(f\) 看做最短路中的 \(dis\) 数组,上面的式子就是在图上连一条从 \(u\) 到 \(v\) 边权是 \(1\) 的边,由于边权都是 \(1\),所以可以直接用 \(\text{bfs}\) 做.

然后考虑如何构造使得每个数 \(i\) 都能出现 \(f_i\) 次,设 \(S_i\) 为所有 \(f_j = i\) 的 \(j\) 组成的集合,\(k\) 是 \(f_i\) 的最大值,那么:

\[[S_k,S_{k-1}],[S_k,S_{k-2},S_{k-1}],[S_k,S_{k-3},S_{k-2},S_{k-1}], \text{...} [S_kS_1,S_2,\text{...},S_k] \]

就是一个可以达到答案上限的方案.

2 总结

先求出答案的上限(下限),在构造一种方案来达到上限(下限).

标签:...,text,边权,上限,下限,CF1815C
From: https://www.cnblogs.com/hellopikachu/p/17322062.html

相关文章