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: ...
随机推荐
- [物理学与PDEs]第1章第8节 静电场和静磁场 8.3 静磁场
1. 静磁场: 由稳定电流形成的磁场. 2. 此时, Maxwell 方程组为 $$\beex \bea \Div{\bf D}&=\rho_f,\\ \rot {\bf E}&={\ ...
- 实现线程安全先进先出的dict
# encoding:utf-8 from collections import OrderedDictfrom collections import MutableMappingfrom threa ...
- 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/
机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave 开源 MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...
- 【原创】大叔经验分享(20)spark job之间会停顿几分钟
今天遇到一个问题,spark应用中在一个循环里执行sql,每个sql都会向一张表写入数据,比如 insert overwrite table test_table partition(dt) sele ...
- iOS URL Cache文章推荐 (待完成)
推荐链接是:http://www.cnblogs.com/Mike-zh/archive/2016/02/24/5210169.html http://blog.csdn.net/y550918116 ...
- php 新闻上一条下一条
public function prevnext($table,$id,$where=[]){ $ids=db($table)->field('id,title')->order('sor ...
- 二维前缀和好题hdu6514
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ]; )* ...
- JMeter Ultimate Thread Group阶梯式减压
选择或者搜索Stantard Set标准集, 我们要用的Ultimate Thread Group最终线程组包含在里面: 下载完成之后,JMeter会自动重启. 添加最终线程组: 还是以打开博客园首页 ...
- Windows Internals 笔记——终止进程
1.进程可以通过以下四种方式终止: 主线程的入口点函数返回(强烈推荐的方式) 进程中的一个线程调用ExitProcess函数(避免这种方式) 另一个进程中的线程调用TerminateProcess函数 ...
- 关于CentOS
dd if=/dev/cdrom of=centos72.iso 自动挂载镜像: vi /etc/fstab /root/centos72.iso /mnt/cdrom iso9660 de ...