题意:n个点,m条边,还有一个k,给出每条边的信息,让你选择一些边,使得这些边组成的图里面,每个点只属于k个回路上,问最小的费用。
分析:如果每个点都只在k个回路上,那么这些点的出度入度是相等的,都是等于k,所以对于每个点,拆点分别连源点汇点,容量为k,费用为0,然后边就正常的连上,容量为1,费用为边权,跑一遍费用流,若最后的流量等于k*n,就是答案,否则就是-1。建图如下。
总结:环路问题可以转化为点的入度出度问题,点的入度出度问题又可以转化为拆点后的网络流问题。
代码:待补。参考https://blog.csdn.net/qq_37943488/article/details/83447381。