当前位置: 首页 > 编程日记 > 正文

pku 3422 Kaka's Matrix Travels 最大费用最大流

http://poj.org/problem?id=3422

/*

题意:给定一个n*n的矩形方格,要求从(1,1)出发,只能往右下角走,(i + 1,j) 或者 (i + n,j)每次走完将格子里面的数累加,并将所走过的格子里面的数置零,问走k能得到的最大的数:

*/

/*

网络流的题目建图是关键,这道题目建图很难想啊!首先要拆点。这里将一个点拆分成两个点,建立两条边,一条变得流量为1,权值为 map[i][j],另一条则是流量为无穷,权值为0了。注意这条边是为了保证在走过该店后,map[i][j]为0后,还能继续走因为它有流量且权值为0. 还有就是往右下角走建立流量为无穷权值为0的边。最后要建立的就是超级源点与汇点的边了,都是流量为k权值为0的边,保证走k次。

*/

code:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#define maxn 5005
using namespace std;const int inf = 99999999;struct node
{int u,v;int c,w;int next;
}g[maxn*100];
int head[maxn],cnt,pre[maxn];
int dis[maxn],map[maxn][maxn];
bool inq[maxn];
int n,m,k,s,t,ans;//为静态表初始化
void init()
{memset(head,-1,sizeof(head));cnt = 0;
}
//加边,记住反向边去权值取反
void add(int u,int v,int c,int w)
{g[cnt].u = u; g[cnt].v = v; g[cnt].c = c; g[cnt].w = w;g[cnt].next = head[u]; head[u] = cnt++;g[cnt].u = v; g[cnt].v = u; g[cnt].c = 0; g[cnt].w = -w;g[cnt].next = head[v]; head[v] = cnt++;
}
void spfa()
{int i;queue<int>q;for (i = 0; i <= t; ++i){dis[i] = -inf;inq[i] = false;pre[i] = -1;}q.push(s); inq[s] = true;dis[s] = 0;while (!q.empty()){int u = q.front(); q.pop();inq[u] = false;for (i = head[u]; i != -1; i = g[i].next){int v = g[i].v;if (g[i].c && dis[v] < dis[u] + g[i].w){dis[v] = dis[u] + g[i].w;pre[v] = i;//注意这里记录的是这一条边了if (!inq[v]){inq[v] = true;q.push(v);}}}}
}
void MCMF()
{while (1){spfa();if (pre[t] == -1) break;int x = t,minf = inf;while (x != s){minf = min(minf,g[pre[x]].c);x = g[pre[x]].u;}x = t;while (x != s){g[pre[x]].c -= minf;g[pre[x]^1].c += minf;x = g[pre[x]].u;}ans += minf*dis[t];}
}
int main()
{int i,j;scanf("%d%d",&n,&k);int tmp = n*n;init();//关键是建边的过程for (i = 1; i <= n; ++i){for (j = 1; j <= n; ++j){scanf("%d",&map[i][j]);int x = (i - 1)*n + j;int y = x + tmp;add(x,y,1,map[i][j]);add(x,y,inf,0);if (i < n) add(y,x + n,inf,0);if (j < n) add(y,x + 1,inf,0);}}s = 0; t = 2*tmp + 1;add(s,1,k,0);add(2*tmp,t,k,0);ans = 0;MCMF();printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/E-star/archive/2012/06/28/2567812.html

相关文章:

【青少年编程】全国青少年软件编程等级考试大纲与说明(Scratch)

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 后台回复 资料下载 可获取该考试大纲与说明的PDF版本。

前端中的this,指的是什么?

想要学习前端&#xff0c;短时间内是比较困难的&#xff0c;web前端要学习的内容有很多&#xff0c;今天小编就为大家详细的介绍一下前端中的this&#xff0c;指的是什么?来看看下面的详细介绍。 前端中的this&#xff0c;指的是什么? 1.this是什么 this 是 JavaScript 中的一…

在SQLserver数据库里设置作业的步骤

在SQLserver数据库里设置作业&#xff08;对数据库的表定期进行数据清理&#xff09;的步骤 1.首先&#xff0c;要打开sql server代理的服务&#xff0c;在我的电脑&#xff0c;右键管理的服务打开&#xff0c;SQL Server 代理 (MSSQLSERVER)这个服务一定要打开。2.打开数据库&…

tomcat环境部署

1、java安装 #java env export JAVA_HOME/usr/local/src/jdk1.8.0_162 export JRE_HOME$JAVA_HOME/jre export PATH$JAVE_HOME/bin:$JAVA_HOME/bin:$PATH export CLASSPATH.:$JAVA_HOME/lib:$JAVA_HOME/lib 2、下载tomcat wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat…

【青少年编程】【一级】舞者凯希

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 舞者凯…

UI设计APP图标设计规范介绍

​ UI设计所涉及的内容是比较多的&#xff0c;其中关于APP图标的设计就是常见的一种&#xff0c;UI设计师需要掌握不同的UI设计规范。今天小编就帮助大家了解下移动端APP图标设计规范&#xff1a; 很多设计师以为UI设计就是设计图标。虽然事实并非如此&#xff0c;但图标的设计…

Linux中断(interrupt)子系统之一:中断系统基本原理【转】

转自&#xff1a;http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论&#xff0c;文中的例子基本都是基于ARM这一体系架构&#xff0c;其他架构的原理其实也差不多&#xff0c;区别只是其中的硬件抽象层。内核版本基…

haskell的分数运算

孩子要上3年级了&#xff0c;里面涉及分数的部分&#xff0c;先准备一下。 haskell中涉及分数的模块是Ratio。 Ratio Synopsis Documentation data Ratio a Rational numbers, with numerator and denominator of some Integral type. Instances Typeable1 Ratio Integral a &g…

【复盘】端端,棒棒哒!

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 昨晚2…

UI设计培训分享:平面广告设计中的文案表达技巧

UI设计培训包含平面设计&#xff0c;而且其中的应用频率是非常大的&#xff0c;本期小编就为大家详细的介绍一下平面广告设计中的文案表达技巧&#xff0c;希望下面的介绍能够帮助到正在学习UI设计的同学们。 平面广告设计中的文案表达技巧&#xff0c;平面广告中文案的编排创意…

工具类——md5

android的开发过程中&#xff0c;数据安全始终是个问题。这里记录一个md5的工具类&#xff0c;感觉挺好用的。 package com.xzw.test; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class TestMD5 { public static…

【青少年编程】【一级】小狗散步

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 小狗散…

avplayer VS2008编译

错误1. typedef void * POINTER_64 PVOID64;  解决办法 typedef void *PVOID;typedef void * POINTER_64 PVOID64;在它之前加下&#xff1a;#define POINTER_64 __ptr64 官网给出的解决办法 打开winnt.h文件&#xff08;这个是vc安装时带的文件&#xff09; 找到 #include <…

Python培训分享:python爬虫可以用来做什么?

爬虫又被称为网络蜘蛛&#xff0c;它可以抓取我们页面的一些相关数据&#xff0c;近几年Python技术的到来&#xff0c;让我们对爬虫有了一个新的认知&#xff0c;那就是Python爬虫&#xff0c;下面我们就来看看python爬虫可以用来做什么? Python培训分享&#xff1a;python爬虫…

【字符串操作之】返回指定位置的字符和Unicode 字符代码 根据unicode返回字符→→charAt、charCodeAt和fromCharCode...

//charAt和charCodeAt分别返回指定位置处的字符和字符对应的unicode码 var str:String"abcdefg"; var str2str.charAt(1); var str3str.charCodeAt(1); trace(str2); //b trace(str3); //98 fromCharCode是个静态方法&#xff0c;根据unicode返回字符 var str:String…

E667:Fsync failed(how to solve)

今天在学习一个关闭icmp回显的配置时候&#xff0c;vim出现了Fsync failed这个问题&#xff01; 下面来说一下我发生这种情况的原因&#xff08;系统CentOS6.5&#xff09;,那时编辑完后先是输入“q”&#xff0c;正如我们所想&#xff0c;已修改过的配置它会提醒我要把数据写入…

【复盘】第一次灌鸡汤

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 上周日…

Python中常用的数据分析工具(模块)有哪些?

本期Python培训分享&#xff1a;Python中常用的数据分析工具(模块)有哪些?Python本身的数据分析功能并不强&#xff0c;需要安装一些第三方的扩展库来增强它的能力。我们课程用到的库包括NumPy、Pandas、Matplotlib、Seaborn、NLTK等&#xff0c;接下来将针对相关库做一个简单…

Android应用中通过AIDL机制实现进程间的通讯实例

Android中&#xff0c;每个应用程序都有自己的进程&#xff0c;当需要在不同的进程之间传递对象时&#xff0c;该如何实现呢&#xff1f;显然&#xff0c;Java中是不支持跨进程内存共享的&#xff0c;因此要传递对象&#xff0c;需要把对象解析成操作系统能够理解的数据格式&am…

06 Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 这是第…

区分BundleVersion和BundleShortVersionString

区分BundleVersion和BundleShortVersionString最近遇到了关于检查更新的版本问题了。问题出在了Info.Plist配置中的两个字段&#xff0c;BundleVersion和BundleShortVersionString。搞了两年的开发&#xff0c;第一次看到还有另一个字段的版本。由于版本检测升级的问题&#xf…

UI设计培训技术分享:配色秘籍

设计中颜色的使用是一个非常值得关注的问题&#xff0c;同样的构图、版式&#xff0c;但是不同的颜色搭配给人的感觉就完全不一样&#xff0c;色彩的冷暖&#xff0c;明暗变化琳琅满目&#xff0c;表达不同的氛围与情绪&#xff0c;对于新手设计来讲&#xff0c;配色是个不容小…

安全的Web主机iptables防火墙脚本

下面以自己的Web服务器举例说明之&#xff0c;系统的默认策略是INPUT为DROP&#xff0c;OUTPUT、FORWARD链为ACCEPT&#xff0c;DROP设置得比较宽松&#xff0c;因为我们知道出去的数据包比较安全&#xff1b;为了验证脚本的通用性&#xff0c;我特的查看了服务器的内核及iptab…

用户至上-阿里马马篇

最近经常在阿里巴巴的平台里活动&#xff0c;突然发现&#xff0c;支付宝病了。 当用户生成一单交易后&#xff0c;需要用支付宝支付时&#xff0c;如何保证是用户本人在操作呢&#xff1f; 当初&#xff0c;支付宝是国内第一家很好地解决这个问题的。 解决的途径主要是&#x…

【复盘】小朋友的奇思妙想

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 上周日…

UI设计培训技术分享:搞定萌萌哒可爱图标

UI设计要学到的东西有很多&#xff0c;那么关于图标设计就是其中的一种&#xff0c;很多企业比较忠于萌萌哒的可爱图标&#xff0c;那么如何搞定萌萌哒可爱图标呢?来看看下面UI设计培训技术分享教程。 UI设计培训技术分享&#xff1a;搞定萌萌哒可爱图标 萌萌哒的图标制作有三…

远程处理Remoting

日程 ?应用程序域 ?Remoting和原理 ?编程式和管理式配置实例 用应用程序域 操作系统和运行库环境通常会在应用程序间提供某种形式的隔离。例如&#xff0c;Microsoft Windows 使用进程来隔离应用程序。为确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生不良影…

Datawhale组队学习周报(第002周)

Datawhale组队学习周报&#xff08;第002周&#xff09; &#xff08;一&#xff09;当下 本周&#xff08;02月22日~02月28日&#xff09;&#xff0c;我们正在进行5门开源内容的组队学习。一共建立了6个学习群&#xff0c;参与人数1080人。到目前为止&#xff0c;有4门课开…

LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍

LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍 LVS (Linux Virtual Server) LVS&#xff08;Linux Virtual Server&#xff09;其实就是针对高可伸缩、高可用网络服务的需求&#xff0c;给出了基于IP层和基于内容请求分发的负载平衡调度解决方法&#xff0c;…

UI设计培训分享:设计当中的颜色运用

参加UI设计培训的同学应该都知道&#xff0c;颜色的搭配是学习UI设计非常重要的一步&#xff0c;颜色跟其他的东西一样&#xff0c;适量才会运用得当&#xff0c;如果在你的配色计划中坚持使用马克思三原色的话&#xff0c;你会得到更好的配色结果&#xff0c;为一个项目配色时…