bzoj2007: [Noi2010]海拔
今天各位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]海拔相关推荐
- 洛谷2046 BZOJ2007 NOI2010 海拔 平面图最小割
题目链接 题意: 给你一个网格图,正反边边权不同,从海拔低的地方到海拔高的地方的代价是海拔差乘边权,海拔高到海拔低的地方不需要代价.左上角海拔是0,右下角海拔是1,让你任意安排其他点的海拔,使得每条边 ...
- BZOJ2007 NOI2010 海拔 网络流+最短路
题意:给定一个N*N的网格,每个格点均与周围的八个点连边,每条边有一个边权,求安排每个点的点权h,使$\sum\limits_{e \in G} {e.w \times \min \{ ({h_{e. ...
- BZOJ 2007: [Noi2010]海拔
同1001一样,对偶图最小割转最短路 又被卡spfa= = 话说为什么总是有些人总喜欢卡spfa,又好写一般情况又快,为何老是要逼人写迪杰斯特拉= = 要就题目直接说会卡spfa嘛 好吧其实是前几天考 ...
- bzoj 2007 [Noi2010]海拔——最小割转最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连 ...
- NOI2010~NOI2018选做
[NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
- 一些有难度的网络流问题
本质是线性规划 最小割建模 NOI2010 海拔 一个的网格,每跳变的两个方向都有一定数目的人流,每个格点都有海拔,一个人爬坡需要付出高度差的代价,下坡不付出代价,左下角高度为,右上角高度为,求安排其 ...
- ACM比赛经验、刷题记录及模板库总结(更新中)
前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...
- 网络流题集【夏天的风】
[HDU] 1532Drainage Ditches(基础) [最大流] 3549 Flow Problem(基础) [最大流] 3572 Task Schedule [最大流]任务 ...
最新文章
- 再见,Python!你好,Go语言
- ELK教程1:ElasticSearch集群的部署
- protel DXP的类矢量图功能
- 【深度学习】煮酒论英雄:深度学习CV领域最瞩目的top成果总结
- python 网络连接_python网络连接之tcp通信
- Lambda表达式和匿名内部类的区别【理解】
- eeprom stm8l 擦除 读写_[STM8L]EEPROM操作读与写
- Elasticsearch学习(2)—— 常见术语
- 485通信少发一个字节_一文搞懂Modbus与RS485通信协议
- 华为云数据库携新品惊艳亮相2019华为全联接大会
- List集合中对象的排序
- js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合...
- 企业应用:应用层查询接口设计
- 一键解决局域网共享之批处理
- Python使用pyhive库远程操作hive的配置和使用
- 云服务器被攻击了怎么办
- matlab tanh导数,谁知道tanh(x)的二阶导数-tanh-数学-郝啪韭同学
- 启动计算机键盘没反应,电脑键盘个别键没反应怎么办
- 输入今天的日期,输出明天的日期
- 恢复计算机管理员权限软件,帮您修复win10系统管理员权限的恢复步骤