CodeChef DEC14 RIN - 最小割

  来自集训队作业2016.
  吐槽一个。。cc的题目id真的不是用脸滚的吗(雾)


【题意】
  凛要选课,每课只用上一次且可能有前置课程,第 i 个学期上课 j 有收益 xi,j ,某个学期可能不开某课,求最大收益。


  他既然给了个前置关系,那么我们来考虑最大权闭合图。先将课程收益按学期差分 xi,j=xi,jxi,j+1 ,如果选了 (i,j) 就必须选 (i,j+1) 。对于 x 的前置课程 y ,选了 (x,i) 就必须选 (y,prey,i) ,其中 prey,i 表示 y 这门课在学期 i 前最后一个能选的学期;如果 prey,i 不存在则 (x,i) 强制不能选;每门课的最后一个可用学期强制选。按照这个建闭合图即可。
  当然直接割也是可以的。。。看了看别人的题解才发现自己sb了。。。先让每门课选最大收益的那个学期,那么如果选另外一个学期就会有一个减损,于是每门课 i (i,1) 一直连到 (i,m) 然后到 T ,边权为减损,然后强制必须割。前置关系直接连对应位就好了。

你可能感兴趣的:(最小割,网络流)