做题记录 25.6.11

\(\textcolor{purple}\odot\) P4553 80人环游世界

每个点拆为入点和出点,两者之间连边限制通过次数,建立超级源点,源点向其连容量 \([0,m]\) 费用 \(0\) 的边,超级源点向所有入点、所有出点向汇点连边,对于给定的有向边在对应出点和入点之间连边,然后求出上下界最小费用可行流

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

代码

\(\textcolor{purple}\odot\) P3980 [NOI2008] 志愿者招募

\(mx\) 为极大值(\(\ge 3\max a_i\) 即可),建立 \(n+1\) 个点,第 \(i\) 个点向第 \(i+1\) 个点连容易 \([0,mx-a_i]\) 费用 \(0\) 的边表示第 \(i\) 天的限制,\(S\)\(1\)\(n+1\)\(T\) 连容量 \([mx,mx]\) 费用 \(0\) 的边,对于每组 \((s,t,c)\) \(s\)\(t+1\) 连容量 \([0,mx]\) 费用 \(c\) 的边,然后求出上下界最小费用可行流即可

时间复杂度 \(O(nmv)\)

代码

\(\textcolor{black}\odot\) CF1416F Showing Off

当一个位置 \((x,y)\) 周围(四连通)存在一个 \(a\) 更小的位置时,\((x,y)\) 可以不在环上,否则必须在环上

黑白染色可得环长必须为偶数,将其断为若干大小为 \(2\) 的环显然不改变合法性

环上的点的 \(a\) 必须相同,因此每个位置建立一个点,\(a\) 相同且相邻的位置之间连边,黑白染色分为左右两部分,转化为二分图匹配,通过上下界限制某些点必须匹配,上下界网络流求出合法匹配,从而得到所有大小为 \(2\) 的环

对于剩下每个位置,找到它周围的一个 \(a\) 更小的位置,当前位置指向那一位置,并算出对应的值

总时间复杂度 \(O((nm)^2(nm))=O(n^3m^3)\)

代码

参考

posted @ 2025-06-13 08:03  Hstry  阅读(2)  评论(0)    收藏  举报