摘要: 神奇的偏移量啊。其实一点也不神奇。。直接上KM就是了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define maxn 105 7 using namespace std; 8 9 struct KM 10 { 11 vector G[maxn]; 12 int W[maxn][maxn],n; 13 int Lx[maxn],Ly[maxn]; 14 int left[maxn]; 15 bool S[maxn],T[maxn]; 16 17 ... 阅读全文
posted @ 2013-10-14 21:25 浙西贫农 阅读(204) 评论(0) 推荐(0) 编辑
摘要: LRJ老师白书2上讲网络流的例题,只不过没有给出题号,今天偶然发现了这道题。这里,费用随流量的变化而变化,且正好与流量的平方成正比,可以巧妙的将原本1,4,9,16,25的5种不同情况下的费用拆成5条容量为1的边,他们的费用分别为1,3,5,7,9。因为每次增广的时候,肯定会选择去走费用最小的边,比如说走了cost=1的边之后,如果要再走这条路,肯定会去走cost=3的边(不可能去走cost=5,7,9的边),这样一来,把两条边加起来就是flow=2,cost=4。 1 #include 2 #include 3 #include 4 #include 5 #define maxn 1... 阅读全文
posted @ 2013-10-14 19:52 浙西贫农 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 拆点跑费用流 1 #include 2 #include 3 #include 4 #include 5 #define maxn 2010 6 #define maxm 10100 7 #define INF 1 Q; 34 for(int i = 0;i 0 && d[u] + cost[i] < d[v[i]]){ 41 d[v[i]] = d[u] + cost[i]; 42 pre[v[i]] = u;pos[v[i]] = i; 43 ... 阅读全文
posted @ 2013-10-14 19:08 浙西贫农 阅读(144) 评论(0) 推荐(0) 编辑