博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 2007: [Noi2010]海拔
阅读量:5277 次
发布时间:2019-06-14

本文共 1673 字,大约阅读时间需要 5 分钟。

同1001一样,对偶图最小割转最短路

又被卡spfa= =

话说为什么总是有些人总喜欢卡spfa,又好写一般情况又快,为何老是要逼人写迪杰斯特拉= =

要就题目直接说会卡spfa嘛

好吧其实是前几天考试被spfa卡掉一半点发牢骚的= =不要介意= =

话说最近真的有些背,各种卡时卡空间(差2MB就过了的惨痛经历啊QAQ)

好吧不说那么多了= =

CODE:

#include<cstdio>

#include<iostream>

#include<cstring>

#include<algorithm>

#include<queue>

using namespace std;

#define maxk 510

#define maxn maxk*maxk

#define maxm maxn*4

#define inf 0x7fffffff

struct edges{

    int to,next,dist;

}edge[maxm];

struct node{

    int u,v;

};

bool operator < (node x,node y) {

return x.v>y.v;

}

int l,next[maxn];

void addedge(int x,int y,int z){

    edge[++l]=(edges){y,next[x],z};next[x]=l;

}

int dist[maxn],s,t;

bool b[maxn];

priority_queue<node > q;

int spfa(){

    for (int i=1;i<=t;i++) dist[i]=inf;

    dist[s]=0;

    q.push((node){s,0});

    while (!q.empty()) {

node x=q.top();q.pop();

int u=x.u;

if (b[u]) continue;

b[u]=1;

for (int i=next[u];i;i=edge[i].next) 

   if (dist[edge[i].to]>dist[u]+edge[i].dist) {

dist[edge[i].to]=dist[u]+edge[i].dist;

q.push((node){edge[i].to,dist[edge[i].to]});

   }

    }

    return dist[t];

}

int n,x,id[maxk][maxk],cnt;

int main(){

    scanf("%d",&n);

    n++;

    for (int i=1;i<n;i++) 

for (int j=1;j<n;j++) id[i][j]=++cnt;

    s=++cnt,t=++cnt;

    for (int i=1;i<=n;i++) 

for (int j=1;j<n;j++) {

   scanf("%d",&x);

   addedge(i==1?s:id[i-1][j],i==n?t:id[i][j],x);

}

    for (int i=1;i<n;i++) 

for (int j=1;j<=n;j++) {

   scanf("%d", &x);

   addedge(j==n?s:id[i][j],j==1?t:id[i][j-1],x);

}

    for (int i=1;i<=n;i++) 

for (int j=1;j<n;j++) {

   scanf("%d",&x);

   addedge(i==n?t:id[i][j],i==1?s:id[i-1][j],x);

}

    for (int i=1;i<n;i++) 

for (int j=1;j<=n;j++) {

   scanf("%d",&x);

   addedge(j==1?t:id[i][j-1],j==n?s:id[i][j],x);

}

    printf("%d\n",spfa());

    return 0;

}

转载于:https://www.cnblogs.com/New-Godess/p/4348901.html

你可能感兴趣的文章
【bzoj3280】小R的烦恼 费用流
查看>>
【bzoj2245】[SDOI2011]工作安排 费用流
查看>>
【bzoj1026】[SCOI2009]windy数 数位dp
查看>>
【自动化测试】搭建一个简单从Excel读取用例内容并输出结果的脚本
查看>>
httpclient爬取性感美图
查看>>
找出1000以内的所有完数。
查看>>
2017"百度之星"程序设计大赛 - 初赛(A)数据分割
查看>>
ckeditor源码编辑模式,添加style、javascript内容丢失的解决
查看>>
关于微信支付的退款那些事
查看>>
linux系统优化
查看>>
apache工作模式
查看>>
方差 标准差
查看>>
18.约瑟夫环
查看>>
C语言#line预处理器
查看>>
anjularjs 路由
查看>>
【洛谷】P2179 [NOI2012]骑行川藏
查看>>
Python函数篇
查看>>
Grid布局和Flex布局
查看>>
关于weblogic server对docker的支持
查看>>
Filter 字符编码Filter 一
查看>>