摘要:
跑出可行流后从原来的汇点向原来的源点跑最大流,原图最小流=inf-maxflow。显然超源超汇的相关边对其也没有影响。原图最小流=可行流-原图新增流量,因为t向s流量增加相当于s向t流量减少。但为什么等于inf-maxflow呢?显然最大流会把这条inf边跑满,这样会增加inf-可行流的流量,然后又 阅读全文
摘要:
考虑有源汇上下界可行流:由汇向源连inf边,那么变成无源汇图,按上题做法跑出可行流。此时该inf边的流量即为原图中该可行流的流量。因为可以假装把加上去的那些边的流量放回原图。 此时再从原来的源向原来的汇跑最大流。超源超汇相关的边已经流满不会再退流,则下界可以满足,并且在此基础上增广是可以保证原图的流 阅读全文
摘要:
假设初始流为每条边的下界。但这样可能流量会不守恒,我们需要在上面加上一个附加流使流量守恒。只要让每个点开始的出/入流量与原初始流相等就可以求出附加流了。那么新建超源S超汇T,令degree[i]表示流入i的边的下界之和-从i流出的边的下界之和。 若degree[i]>0,则表示需要有额外degree 阅读全文
摘要:
注意到怼大佬的操作至多只能进行两次。我们逐步简化问题。 首先令f[i][j]表示第i天结束后自信值为j时至多有多少天可以进行非防御操作(即恢复自信值之外的操作)。这个dp非常显然。由于最终只需要保证存活,那么取f中的最大值即可(可以在第n天之前使大佬自信值为0而结束),之后就不用再管自己的自信值。复 阅读全文
摘要:
可以发现这个写挂的树状数组求的是后缀和。find(r)-find(l-1)在模2意义下实际上查询的是l-1~r-1的和,而本来要查询的是l~r的和。也就是说,若结果正确,则a[l-1]=a[r](mod 2)。 一个很容易想到的思路是线段树维护每一位为1的概率。然而这其实是不对的,因为每一位是否为1 阅读全文
摘要:
把每个人的监视范围看成点,相邻的两个监视范围连边,那么跑一遍最短路就可以了(事实上边权都为1可以直接bfs)。显然存在最优路线没有某个时刻同时被多于两人监视,要到达另一个区域的话完全可以经过分界线而不是和其他区域的交点(若两个区域只有一个交点的话是不能直接到达的),总之就是说不用特判同时被多人监视的 阅读全文