BZOJ 2007: [Noi2010]海拔
同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
BZOJ 2007: [Noi2010]海拔相关推荐
- bzoj 2007 [Noi2010]海拔——最小割转最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连 ...
- 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...
- bzoj 2007 海拔 —— 最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 最后一定是起点周围一片0,终点周围一片1: 所以建出图来跑最短路即可. 代码如下: # ...
- bzoj 2006 [NOI2010]超级钢琴 rmq+堆
2006: [NOI2010]超级钢琴 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 3708 Solved: 1846 [Submit][Sta ...
- BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )
一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ...
- 洛谷2046 BZOJ2007 NOI2010 海拔 平面图最小割
题目链接 题意: 给你一个网格图,正反边边权不同,从海拔低的地方到海拔高的地方的代价是海拔差乘边权,海拔高到海拔低的地方不需要代价.左上角海拔是0,右下角海拔是1,让你任意安排其他点的海拔,使得每条边 ...
- bzoj 2109: [Noi2010]Plane 航空管制
Description 世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频 发生.最近,小X就因为航空管制,连续两次在机场被延误超过了两小时.对此, 小X表示很不满意. 在这次来烟台的 ...
- bzoj2007: [Noi2010]海拔
今天各位D初一小猴子的情景 你学网络流? 来来来师兄给你来几题? 无源汇有上下界费用流会不会? 最大权闭合子图会不会? 黑白染色会不会? 这都不会? 菜鸡yzh:你能不能不用网络流做狼抓兔子 ... ...
- bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】
有个容易混的概念就是第一问的答案不是k[i]字典序最小即可,是要求k[i]大的尽量靠后,因为这里前面选的时候是对后面有影响的(比如两条链a->b c->d,ka=4,kb=2,kc=3,k ...
最新文章
- OpenCV下车牌定位算法实现代码
- 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量
- 【hdu1241Oil Deposits】【HDU 2612 Find a way】
- 编程之美系列之二——寻找出现频率超过一半的数
- 《天涯明月刀》动作开发负责人:让美术hold住全场,推翻MMO的动作套路化设计
- HDU - 2204 Eddy‘s爱好(尚未完全解决)
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity
- jedis StreamEntryID参数解释
- P2386 放苹果 方法一
- vs2012转成vs2010
- 人工智能与机器学习学习笔记(三)
- redis课程视频 黄建宏_Redis从入门到精通 视频教程 下载
- Java--数组和集合区别
- iMeta | 深圳先进院戴磊组开发可同时提取共存菌株的组成和基因成分谱的菌株分析工具...
- Unity发布抖音小游戏:申请注册(包括主体认证和基础信息完善)
- 【软件工程】软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表
- 普通IPC接入神目爱买系统操作说明(智能人脸抓拍盒利旧方案)
- springboot 单点登录
- 贼野牧台服2200+心得
- 计算机专业无领导小组面试题,2015年事业单位招聘(无领导小组讨论)面试真题及真题分析(一)...
热门文章
- 【区块链基础知识系列】 第6课 区块链之分片技术(sharding)-区块链扩容问题的良方
- python监控进程状态_python监控进程脚本
- android activity使用,android,NativeActivity使用
- cad抛物线曲线lisp_曲线的转弯半径和曲率 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
- python词云代码简单_Python 简单实现标签词云
- Qt Dock Widgets 官方示例的翻译
- bilibili有电脑版吗_你体验过电脑版的《和平精英》吗?不用担心内存,也不用担心卡顿...
- Endnote X3 出现中文乱码
- CVPR 2020 《12-in-1: Multi-Task Vision and Language Representation Learning》论文笔记
- 2019暑假第三周总结