题目链接:航空路线问题
由题目中的“每一个城市最多经过一次”可知需要拆点
在根据所求经过城市数最多将城市拆成的边的容量设为1,费用设为1
同时以\(n\)为汇点,源点到1和1中的两点的容量均设为2
再将原图中的边的容量设为\(INF\),费用为0
跑最大费用最大流
输出方案的话,从1开始dfs出两条路径即可,注意不要经过重边以及加入点的合法性
初始化的话可以将所有的name加入至一个map中(常数++)
#include
#include
#include
#include
#include
#include
#include
#include
#include