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

 #include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
using namespace std;
const int INF = <<;
const int N=;
int Map[][],dis[N];
int head[N],pre[N];
bool vis[N];
int cnt = ;
int ans = ;
int n;
struct node
{
int u,v,c,f;
int next; } edge[N];
void add(int u,int v,int c,int f)
{
edge[cnt].u = u;
edge[cnt].v = v;
edge[cnt].c = c;
edge[cnt].f = f;
edge[cnt].next = head[u];
head[u] = cnt++;
edge[cnt].u = v;
edge[cnt].v = u;
edge[cnt].c = -c;
edge[cnt].f = ;
edge[cnt].next = head[v];
head[v] = cnt++;
}
int spfa()
{
for (int i = ; i <= n*n*+; i++)
{
dis[i] = INF;
pre[i] = -;
vis[i] = false;
}
dis[n*n*] = ;
queue<int>q;
q.push(n*n*);
vis[n*n*] = true;
while(!q.empty())
{
int u = q.front();
vis[u] = false;
q.pop();
for (int j = head[u]; j!=-; j=edge[j].next)
{
if (edge[j].f > &&dis[edge[j].v] > dis[u]+ edge[j].c)
{
pre[edge[j].v] = j;
dis[edge[j].v] = dis[u]+ edge[j].c;
if (!vis[edge[j].v])
{
q.push(edge[j].v);
vis[edge[j].v] = true;
}
}
}
}
if (pre[n*n*+]==-)
return ;
return ;
}
void MCMF()
{
while(spfa())
{
int Minflow = INF;
int j = pre[n*n*+];
while(j!=-)
{
Minflow = min(Minflow,edge[j].f);
j = pre[edge[j].u];
}
j = pre[n*n*+];
while(j!=-)
{
edge[j].f-=Minflow;
edge[j^].f+=Minflow;
ans+=Minflow*edge[j].c;
j = pre[edge[j].u];
}
}
}
int main()
{
int k;
scanf("%d%d",&n,&k);
memset(Map,,sizeof(Map));
memset(head,-,sizeof(head));
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
scanf("%d",&Map[i][j]);
}
}
for (int i = ; i <= n; i++)//拆点
{
for (int j = ; j <= n; j++)
{
int u = (i-)*n+j-;
add(*u,*u+,-Map[i][j],);//加边
add(*u,*u+,,k-);
}
}
for (int i = ; i <= n; i++)//向右加边
{
for (int j = ; j < n; j++)
{
int u = (i-)*n+j-;
add(*u+,(u+)*,,k);
}
}
for (int i = ; i < n; i++)//向下加边
{
for (int j = ; j <= n; j++)
{
int u = (i-)*n+j-;
add(*u+,(u+n)*,,k);
}
}
add(n*n*,,,k);//加源点
add(n*n*-,n*n*+,,k);//加终点
MCMF();
printf("%d\n",-ans);
return ;
}

Kaka's Matrix Travels的更多相关文章

  1. POJ 3422 Kaka's Matrix Travels

    Kaka's Matrix Travels Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9567   Accepted:  ...

  2. POJ3422 Kaka's Matrix Travels[费用流]

    Kaka's Matrix Travels Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9522   Accepted:  ...

  3. poj3422 Kaka's Matrix Travels(最小费用最大流问题)

    /* poj3422 Kaka's Matrix Travels 不知道 k次 dp做为什么不对??? 看了大牛的代码,才知道还可以这样做! 开始没有理解将a 和 a‘ 之间建立怎样的两条边,导致程序 ...

  4. POJ3422 Kaka's Matrix Travels 【费用流】*

    POJ3422 Kaka's Matrix Travels Description On an N × N chessboard with a non-negative number in each ...

  5. POJ 3422 Kaka's Matrix Travels(费用流)

    Kaka's Matrix Travels Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6792   Accepted:  ...

  6. POJ3422 Kaka's Matrix Travels

    描述 On an N × N chessboard with a non-negative number in each grid, Kaka starts his matrix travels wi ...

  7. 【poj3422】 Kaka's Matrix Travels

    http://poj.org/problem?id=3422 (题目链接) 题意 N*N的方格,每个格子中有一个数,寻找从(1,1)走到(N,N)的K条路径,使得取到的数的和最大. Solution ...

  8. POJ 3422 Kaka's Matrix Travels 【最小费用最大流】

    题意: 卡卡有一个矩阵,从左上角走到右下角,卡卡每次只能向右或者向下.矩阵里边都是不超过1000的正整数,卡卡走过的元素会变成0,问卡卡可以走k次,问卡卡最多能积累多少和. 思路: 最小费用最大流的题 ...

  9. POJ 3422 Kaka's Matrix Travels (K取方格数:最大费用流)

    题意 给出一个n*n大小的矩阵,要求从左上角走到右下角,每次只能向下走或者向右走并取数,某位置取过数之后就只为数值0,现在求解从左上角到右下角走K次的最大值. 思路 经典的费用流模型:K取方格数. 构 ...

  10. POJ 3422 Kaka's Matrix Travels K取方格数

    题目:给出n*n的方格矩阵,现在从左上方走m次到右下方,问m次能够获得的最大价值和. 分析:最大费用流.拆点进行限制每个格子只取一次,假设点x拆成 x,xx,右边(假设有)y,yy,下方(假设有)z, ...

随机推荐

  1. 诊断:ORA-38760: This database instance failed to turn on flashback database

    $ oerr ora 38760 38760, 00000, "This database instance failed to turn on flashback database&quo ...

  2. Linux下查看Tomcat运行日志

    查看方式 1.先切换到:cd usr/local/tomcat5/logs2.tail -f catalina.out3.Ctrl+c 是退出tail命令/alt+E+R重置 部署常用指令 1.ps ...

  3. MySQL4

    MySQL数据库4 1 管理索引 创建索引帮助 help CREATE INDEX 创建索引 指令 CREATE INDEX 语法格式 CREATE INDEX index_name ON tbl_n ...

  4. DemoKit编译过程

    E:\Project_code\EAE\src_rev_24139_A95LYD\Project\DemoKit>make release Checking uITRON - DemoKit r ...

  5. App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点

    1. 争取相容性和统一性 这里就要求让API设计得是可预测的.按照这种方式写出所有接口和接口所需要的参数.现在就要确保命名是一致的,接口所需的参数顺序也是一致的.你现在应该有products,orde ...

  6. Frame Stacking 拓扑排序 图论

    Description Consider the following 5 picture frames placed on an 9 x 8 array. ........ ........ .... ...

  7. $scope的生命周期

    model mutation 模型改变 model observation 模型观察 scope destruction scope结束 神奇的scope,一个angular应用只有一个scope,一 ...

  8. 洛谷—— P2196 挖地雷

    https://www.luogu.org/problem/show?pid=2196 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定 ...

  9. hdu——3836 Equivalent Sets

    Equivalent Sets Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 104857/104857 K (Java/Other ...

  10. Spring Cloud简介/版本选择/ZooKeeper例子搭建简单说明

    一.什么是Spring Cloud 官方的说法就是Spring Cloud 给开发者提供一套按照一定套路快速开发分布式系统的工具. 具体点就是Spring Boot实现的微服务架构开发工具.它为微服务 ...