海军上将 紫书P375 这题我觉得有2个难点: 一是拆点,要有足够的想法才能把这题用网络流建模,并且知道如何拆点. 二是最小费用限制流,最小费用最大流我们都会,但如果限制流必须为一个值呢?比如这题限制这个流必须是2,我是不会的,所以应该灵活运用模板,并理解其中的道理. [题目链接]海军上将 [题目类型]拆点法+最小费用限制流 &题解: 拆点,把中间的点拆为i和i'点,连线,cap为1,求最小费用流,且流限制为2,最终cost就是答案. &代码: #include <bits/stdc…
题意:有个N个点M个边的有向加权图,求1~N的两条不相交路径(除了起点和终点外没有公共点),使得权和最小. 解法:不相交?也就是一个点只能经过一次,也就是我后面博文会讲的"结点容量问题".(呃不,写完这博文几天后的今天,我负责任地 m(._.)m 告诉大家,我不会写这博文了......我的时间不多了......          m(_ _::m 大家可以看蓝书.)常用方法就是拆点法,把一个点拆成两个点,中间连一条容量为1.费用为0的边.于是求1到 n 的流量为2的最小费用流就可以了.…
题目:在一些一对一游戏的比赛(如下棋.乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之为剪刀石头布情况.有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个人而第三个人又胜过了第一个人.注意这里无序的意思是说三元组中元素的顺序并不重要,将(A, B, C).(A, C, B).(B, A, C).(B, C, A).(C, A, B)和(…
图论算法-最小费用最大流模板[EK;Dinic] EK模板 const int inf=1000000000; int n,m,s,t; struct node{int v,w,c;}; vector<node> map[10010]; int flow[10010][10010]; bool inq[10010]; int d[10010]; int pre[10010],pref[10010]; int minc,maxf; int main() { cin>>n>>…
Farm Tour Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 2135 64-bit integer IO format: %lld      Java class name: Main   When FJ's friends visit him on the farm, he likes to show them around. His farm compr…
度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区. 由于生产能力的区别,第i个片区能够花费a[i]元生产1个商品,但是最多生产b[i]个. 同样的,由于每个片区的购买能力的区别,第i个片区也能够以c[i]的价格出售最多d[i]个物品. 由于这些因素,度度熊觉得只有合理的调动物品,才能获得最大的利益. 据测算,每一个商品运输1公里,将会花费1元. 那么喵哈哈村最多能够实现多少盈利呢? Input本题包含若干组测试数…
标准大白书式模板 #include<stdio.h> //大概这么多头文件昂 #include<string.h> #include<vector> #include<queue> #include<algorithm> using namespace std; +; //最大点数 const int INF=0x3f3f3f3f; struct edge{ //边:起点.终点.容量.流量.单位费用 int from,to,c,f,cost; e…
题意简述 有一个\(n\times m\)棋盘,棋盘上每个格子上有一个水管.水管共有\(16\)种,用一个\(4\)位二进制数来表示当前水管向上.右.下.左有个接口.你可以旋转除了\((0101)_2\)和\((1010)_2\)的其他水管,求最少的旋转次数使得水管的每一个接口所在方向都有一个相邻的水管接口与其对应. 做法 这种插头相关的题一般都是网络流,虽然据说插头dp可以过此题.这道题里面要求不存在单独的接口,所有的接口一一对应等价于流量平衡,那么最少的旋转次数就应该想到费用流. 首先把整个…
链接: https://vjudge.net/problem/POJ-2516 题意: Dearboy, a goods victualer, now comes to a big problem, and he needs your help. In his sale area there are N shopkeepers (marked from 1 to N) which stocks goods from him.Dearboy has M supply places (marked…
题目链接 题意: 有N个商家它们需要货物源,还有M个货物供应商,N个商家需要K种物品,每种物品都有对应的需求量,M个商家每种物品都是对应的存货,然后再是K个N*M的矩阵表示了K个物品从供货商运送到商家的单位上的价钱,那么就是标准的最大流最小费用了,我们只需要建立这样的边,对于所有的供应商都与源点建立流的大小为拥有的个数的边.与商家建立无穷大的边并且边的代价是单位流的代价,然后再由商家出发到达汇点建立流大小为其需要的边,与汇点和源点建立的边的代价都是0. 思路: 一开始的时候,我计划直接跑一次费用…