今天主要的还是做网络流专题里的题目。。。
读了I题后突然发现就是个很简单的拆点最小割。。。刚开始没注意无向图,样例死活过不了,后来知道了以后又想直接在加边的的时候把反向边容量改了,还是过不了样例。。。最后老老实实一条一条边的加,终于过了。。。(记住教训)
P题方格取数,之前在博客里看过 (不然都想不到是网络流),就是按照(x+y)的奇偶性把格子分成两部分,一边用s连接,权值为该点的值,并且把这边每个点和与之相邻的格子建立一条容量为INF的边,另一边连t,权值为该点的值。问题就变成了求最大点独立集,最大点独立集=sum-最小点覆盖集,最小点覆盖集=最小割,即割掉权值和最小的边,使得从源点的流量不能到达汇点 ,等价于求源点到汇点的最大流。因此所有格子的值总和减去最大流的结果就是答案。
Q题求最小割的最少割边数量。这里需要注意:先跑一遍最大流,然后把满流的边权值设为1,其余边权值设为INF,再跑一遍最大流就是答案。注意只是原图中的边,不包括添加的反向边。
其他题还在努力做。。。
L题想了老半天,然后样例过不了,交上去还tle。。。迷,明天继续想
认识了一个大佬,加油。。。