poj 3422 最小费用流
如果不是从费用流区做这个题几乎不会想到用费用流
点有权值很容易想到拆点
问题是求最大sum ... 把权值取负 这样最小费用流的相反数就是最大sum
源点S汇点T k为移动次数
矩阵中的点拆成入点出点 入点到出点连: 一个1容量,-1*点权费用; 一个k容量,0费用 两条边。
这样能保证只在第一次经过点时获得点的权值,并且可以多次经过一个点
矩阵中的点:出点连向下面和右面的点 容量k,费用0
S连1,1的点 容量k费用0 n,n的点连T,容量k费用0
虽然费用是负的 但是没有成负圈 经测试费用流成功ac...
int main(){// 1, n*n in, 1+n*n, n*n+n*n out
int t;
//scanf("%d", &t);
t = ;
while(t--){
memset(head, -, sizeof head);
tot = ;
int n, k;
scanf("%d%d", &n, &k);
for(int i = ; i <= n; i++){
for(int j = ; j <= n; j++){
int tmp;
scanf("%d", &tmp);
addedge(n*(i-)+j, n*(i-)+j+n*n, , -tmp);
addedge(n*(i-)+j, n*(i-)+j+n*n, k, );
if(i != n)
addedge(n*(i-)+j+n*n, n*(i-)+j+n, k, ); //down
if(j != n)
addedge(n*(i-)+j+n*n, n*(i-)+j+, k, ); //right
}
}
addedge(, , k, );
addedge(*n*n, *n*n+, k, );
MCMF(, *n*n+);
printf("%d\n", -ans);
}
return ;
}
poj 3422 最小费用流的更多相关文章
- POJ 3422 Kaka's Matrix Travels (最小费用最大流)
POJ 3422 Kaka's Matrix Travels 链接:http://poj.org/problem? id=3422 题意:有一个N*N的方格,每一个方格里面有一个数字.如今卡卡要从左上 ...
- POJ 3422 Kaka's Matrix Travels(费用流)
POJ 3422 Kaka's Matrix Travels 题目链接 题意:一个矩阵.从左上角往右下角走k趟,每次走过数字就变成0,而且获得这个数字,要求走完之后,所获得数字之和最大 思路:有点类似 ...
- POJ 3422 矩阵取数 最小费用流拆点+负边
Kaka's Matrix Travels Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9153 Accepted: ...
- POJ 3422 Kaka's Matrix Travels(最小费用最大流)
http://poj.org/problem?id=3422 题意 : 给你一个N*N的方格,每个格子有一个数字,让你从左上角开始走,只能往下往右走,走过的数字变为0,走K次,问最大能是多大,累加的. ...
- poj 3422(最小费用最大流)
题目链接:http://poj.org/problem?id=3422 思路:求从起点到终点走k次获得的最大值,最小费用最大流的应用:将点权转化为边权,需要拆点,边容量为1,费用为该点的点权,表示该点 ...
- POJ - 2135最小费用流
题目链接:http://poj.org/problem?id=2135 今天学习最小费用流.模板手敲了一遍. 产生了一个新的问题:对于一条无向边,这样修改了正向边容量后,反向边不用管吗? 后来想了想, ...
- POJ 3422 Kaka's Matrix Travels
Kaka's Matrix Travels Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9567 Accepted: ...
- POJ 3422 Kaka's Matrix Travels K取方格数
题目:给出n*n的方格矩阵,现在从左上方走m次到右下方,问m次能够获得的最大价值和. 分析:最大费用流.拆点进行限制每个格子只取一次,假设点x拆成 x,xx,右边(假设有)y,yy,下方(假设有)z, ...
- POJ 3422 Kaka's Matrix Travels(费用流)
Kaka's Matrix Travels Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6792 Accepted: ...
随机推荐
- Groovy 设计模式 -- 适配器模式
Adapter Pattern http://groovy-lang.org/design-patterns.html#_adapter_pattern 适配器模式,对象存在一个接口, 此接口在此对象 ...
- C++实现递归版二分搜索算法
无聊撸了一个,没啥技术含量,别吐槽.. #include <iostream> using namespace std; int BinarySearch(int* nums,int ke ...
- python 实现简单卷积网络框架
第一步定义卷积核类: class Filter(object): # 滤波器类 对卷积核进行初始化 def __init__(self,width,height,depth): # initializ ...
- 《css网站布局实录》(李超)——读书札记
1.web表现层技术 2.HTML链接设计思想 3.对信息进行合理的分析.分类与处理来创造商业价值. 4.头部描述浏览器所需信息,主体包含所需要展现的具体内容. 5.HTML(XHTML)XML 6. ...
- 网络学习day04_VLSM、子网划分
IP子网划分 首先,在进行子网划分的学习之前,我们先来回顾一下IP地址的相关知识,同时了解一下公有和私有IP地址: 在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门 ...
- SQL Server - CLUSTERED
CREATE TABLE dbo.t_MetricBook ( MetricSetID smallint NOT NULL, BookID smallint NOT NULL, ReportingCc ...
- Xpath初了解
如下一段html: <html> <body> <form id="loginForm"> <input name="usern ...
- 提升Tesseract-OCR输出的质量
图片处理 修改比例(Rescaling) 二值化(Binarisation) 去除噪点(Noise Removal) 旋转/偏移校正(Rotation / Deskewing) 边界(Borders) ...
- git remote: HTTP Basic: Access denied Mac 使用Sourcetree 密码输错 再次输入解决方案
删除下面的key即可
- jackson对日期的处理(序列化与反序列化)
https://blog.csdn.net/cover1231988/article/details/76021478