题目
Our Journey of Dalian Ends
题解
需要用到最小费用最大流的知识,不会的话可以先学习一下。
有了这个前置知识,这道题就很简单了。
首先由于每个城市只能经过一次,所以要先进行拆点。将一个城市拆成两个点,这两个点单向流动,容量为1,路径长度为0。
点拆好后,要再加两个点,三条路径。一个超级源点,连接上海,流量为2,路径长度为1;一个超级汇点,分别连大连和上海,流量为1,路径长度为0。
最后跑一个从超级源点到超级汇点的最小费用最大流就好了。如果答案流量为2,就把费用输入,但如果流量小于2,就输出-1。
代码
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include