CF628F Bear and Fair Set

传送门

网络流好题。

先将所有限制按 \(u_i\) 排序,同时令 \(u_0=0,t_0=0\)\(u_{q+1}=b,t_{q+1}=n\)。(下面就把 \(q\leftarrow q+1\) 了)

这些限制会把 \(1\sim b\) 分成 \(q\) 段。先检查一遍,如果出现 \(u_i\) 更大反而 \(t_i\) 更小,unfair;如果出现一个段内数的个数爆了,unfair。

然后利用网络流构图判断。

考虑对每一个段建立 \(q\) 个段结点 \(D_i\),对余数 \(0\sim 4\) 建立 \(5\) 个余数结点 \(r_i\)。一个数看作一个流量。如果在下面的构图中最大流是 \(n\) 则可行。

\(r_i\rightarrow T\),容量 \(n/5\)。表示最后要有 \(n/5\) 个数是余数 \(i\)

\(S\rightarrow D_i\),容量 \(t_{i}-t_{i-1}\)。表示段 \(i\) 要进入 \(t_i-t_{i-1}\) 个流量。

\(D_i\rightarrow r_j\),容量为 \((u_{i-1},u_i]\) 中余 \(j\) 的数的个数。

posted @ 2024-05-01 20:24  FLY_lai  阅读(6)  评论(0编辑  收藏  举报