今天各位D初一小猴子的情景

你学网络流?

来来来师兄给你来几题?

无源汇有上下界费用流会不会?

最大权闭合子图会不会?

黑白染色会不会?

这都不会?

菜鸡yzh:你能不能不用网络流做狼抓兔子

。。。

然而随便点开这题

诶NOI的题会这么水要么高度为1要么为0?

啊不就是平面图转对偶图?

然后一开始以为回边是没用的。。。图又建错一次。。。。

dij才是正解,但是呢spfa可以狗过。。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;struct node
{int x,y,d,next;
}a[4100000];int len,last[310000];
void ins(int x,int y,int d)
{len++;a[len].x=x;a[len].y=y;a[len].d=d;a[len].next=last[x];last[x]=len;
}int list[310000];bool v[310000];
int d[310000];
int main()
{freopen("altitude.in","r",stdin);freopen("altitude.out","w",stdout);int n,dd,st,ed;scanf("%d",&n);st=n*n+1,ed=n*n+2;for(int i=1;i<=n+1;i++){for(int j=1;j<=n;j++){scanf("%d",&dd);if(i==1)ins(st,j,dd);else if(i==n+1)ins(n*(n-1)+j,ed,dd);elseins(n*(i-2)+j,n*(i-1)+j,dd);}}for(int i=1;i<=n;i++){for(int j=1;j<=n+1;j++){scanf("%d",&dd);if(j==1)ins(n*(i-1)+j,ed,dd);else if(j==n+1)ins(st,n*i,dd);elseins(n*(i-1)+j,n*(i-1)+j-1,dd);}}for(int i=1;i<=n+1;i++){for(int j=1;j<=n;j++){scanf("%d",&dd);if(i==1)ins(j,st,dd);else if(i==n+1)ins(ed,n*(n-1)+j,dd);elseins(n*(i-1)+j,n*(i-2)+j,dd);}}for(int i=1;i<=n;i++){for(int j=1;j<=n+1;j++){scanf("%d",&dd);if(j==1)ins(ed,n*(i-1)+j,dd);else if(j==n+1)ins(n*i,st,dd);elseins(n*(i-1)+j-1,n*(i-1)+j,dd);}}//---------composition--------------------
    memset(d,63,sizeof(d));d[st]=0;memset(v,false,sizeof(v));v[st]=true;int head=1,tail=2;list[1]=st;while(head!=tail){int x=list[head];for(int k=last[x];k;k=a[k].next){int y=a[k].y;if(d[y]>d[x]+a[k].d){d[y]=d[x]+a[k].d;if(v[y]==false){v[y]=true;list[tail]=y;tail++;if(tail==301000)tail=1;}}}v[x]=false;head++;if(head==301000)head=1;}printf("%d\n",d[ed]);return 0;
}

转载于:https://www.cnblogs.com/AKCqhzdy/p/8869845.html

bzoj2007: [Noi2010]海拔相关推荐

  1. 洛谷2046 BZOJ2007 NOI2010 海拔 平面图最小割

    题目链接 题意: 给你一个网格图,正反边边权不同,从海拔低的地方到海拔高的地方的代价是海拔差乘边权,海拔高到海拔低的地方不需要代价.左上角海拔是0,右下角海拔是1,让你任意安排其他点的海拔,使得每条边 ...

  2. BZOJ2007 NOI2010 海拔 网络流+最短路

    题意:给定一个N*N的网格,每个格点均与周围的八个点连边,每条边有一个边权,求安排每个点的点权h,使$\sum\limits_{e \in G} {e.w \times \min \{ ({h_{e. ...

  3. BZOJ 2007: [Noi2010]海拔

    同1001一样,对偶图最小割转最短路 又被卡spfa= = 话说为什么总是有些人总喜欢卡spfa,又好写一般情况又快,为何老是要逼人写迪杰斯特拉= = 要就题目直接说会卡spfa嘛 好吧其实是前几天考 ...

  4. bzoj 2007 [Noi2010]海拔——最小割转最短路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连 ...

  5. NOI2010~NOI2018选做

    [NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...

  6. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  7. 一些有难度的网络流问题

    本质是线性规划 最小割建模 NOI2010 海拔 一个的网格,每跳变的两个方向都有一定数目的人流,每个格点都有海拔,一个人爬坡需要付出高度差的代价,下坡不付出代价,左下角高度为,右上角高度为,求安排其 ...

  8. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  9. 网络流题集【夏天的风】

    [HDU] 1532Drainage Ditches(基础)    [最大流] 3549 Flow Problem(基础)    [最大流] 3572 Task Schedule    [最大流]任务 ...

最新文章

  1. 再见,Python!你好,Go语言
  2. ELK教程1:ElasticSearch集群的部署
  3. protel DXP的类矢量图功能
  4. 【深度学习】煮酒论英雄:深度学习CV领域最瞩目的top成果总结
  5. python 网络连接_python网络连接之tcp通信
  6. Lambda表达式和匿名内部类的区别【理解】
  7. eeprom stm8l 擦除 读写_[STM8L]EEPROM操作读与写
  8. Elasticsearch学习(2)—— 常见术语
  9. 485通信少发一个字节_一文搞懂Modbus与RS485通信协议
  10. 华为云数据库携新品惊艳亮相2019华为全联接大会
  11. List集合中对象的排序
  12. js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合...
  13. 企业应用:应用层查询接口设计
  14. 一键解决局域网共享之批处理
  15. Python使用pyhive库远程操作hive的配置和使用
  16. 云服务器被攻击了怎么办
  17. matlab tanh导数,谁知道tanh(x)的二阶导数-tanh-数学-郝啪韭同学
  18. 启动计算机键盘没反应,电脑键盘个别键没反应怎么办
  19. 输入今天的日期,输出明天的日期
  20. 恢复计算机管理员权限软件,帮您修复win10系统管理员权限的恢复步骤

热门文章

  1. FTP服务器配置与管理(4) 服务器端的常用配置及FTP命令
  2. 一台路由器实现电信ITV与宽带共享上网
  3. ExtJS 4 File Upload + Spring MVC 3 Example
  4. 英特尔收购McAfee的10种结局猜测
  5. 是否应该饮用酵素和自制的葡萄酒
  6. django+asyncio资料调研整合
  7. 64位系統修復dll
  8. keras中的神经网络为什么需要多次epoch
  9. 09_Fibonacci
  10. 计算机专业都学什么科,大学本科计算机专业都有什么科目?