费用流
A_loud_name
23333333~~~
展开
-
Intervals poj 3680 最小费用最大流
题目大意给你n个区间(ai,bi),对应区间的权重为ci。现在让你挑选一些区间,使得任一点出现的次数不超过k,问你满足条件的方案的最大权重和为多少?分析离散化后两个端点连边,流量为1,费用为负的权值(因为求的是最大费用最大流),然后再加上源点连一条到1的流量为k,费用为零的边和n到汇点一条到1的流量为k,费用为零的边。 重要的是:i和i+1之间的连边,流量为k,费用为0,因为有的端点之间你要让它们原创 2017-03-20 21:55:45 · 497 阅读 · 0 评论 -
Kaka's Matrix Travels poj 3422 费用流
题目大意给一个N*N的方阵,从[1,1]到[n,n]走K次,走过每个方格加上上面的数,然后这个格上面的数变为0。求可取得的最大的值。分析建图很重要,这里用到拆点,将每个点拆成两个,这两点之间连两条边,一条容量为1,费用为该节点的值,另一条边容量为无穷或k,费用为0。(这样保证就算经过这点k次时,费用也只被计算一次)由于每个点只能往右或者往下走,所以将它和右边及下边的点连一条边,容量为无穷,费用为0.原创 2017-03-21 18:26:28 · 341 阅读 · 0 评论 -
Matrix Again HDU 3376 最大费用最大流
题目大意给你一个N*N的矩阵,每个元素代表该处的权值。要求每个点只能走一次,左上角和右下角可以走两次但该处的权值只能获取一次。问你从左上角走到右下角(只能向下或右移动),再从右下角回到左上角(只能向上或左移动)所能得到的最大权值。分析我们可以转化为从【左上角起点】到【右下角终点】走两次所获的最大权值。然后和poj3422 一样了。ps:要人品的,我超时了10多次,然后就在不经意间A了两次!!!cod原创 2017-03-22 17:47:49 · 454 阅读 · 0 评论 -
Going Home poj 2195 最小费用最大流
题目大意给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致。man每移动一格需花费$1(即单位费用=单位距离),一间house只能入住一个man。现在要求所有的man都入住house,求最小费用。分析费用流的模板套一下,建图随便建。ps:数组开小改了我两个小时。code#include<iostream> #include<cstring> #include<cs原创 2017-03-15 20:34:52 · 318 阅读 · 0 评论 -
找对象 ssl 2637 费用流
题目大意分析用以前的spfa费用流搞了两三天都不对。 一怒之下跑去学zkw, 学完,一A。code#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<string> #include<queue>;using namespace std;struct arr{ int x,y,w,c原创 2017-04-12 19:38:03 · 249 阅读 · 0 评论 -
[SDOI2009]晨跑 bzoj 1877 费用流
题目大意给出一个有向图,求从起点到终点最多能找到多少条不相交的路径和这些路径的最小总长度。分析第一问是最大流 第二问是最大最小费用流。 把一个点拆成入点和出点,中间连一条流量为1的边就可以限制路径不相交了(常用方法)code#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorith原创 2017-12-06 20:54:43 · 257 阅读 · 0 评论 -
poj 3565 Ants
题目 平面上共有2*n个点,n个是白点,n个是黑点。对于每个白点,找到一个黑点,用线段连接起来。要求所有的线段不相交。 分析 在心理课上看到的题 一开始毫无头绪,后面想了一下,发现如果不相交,其实等价于让每条线段的长度之和最小。 来幅图 于是就变成了最小费用流。 code #include<iostream> #include<cstring> #i...原创 2018-03-13 17:58:38 · 295 阅读 · 0 评论