bzoj 2834: 回家的路】的更多相关文章

2834: 回家的路 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 62  Solved: 38[Submit][Status][Discuss] Description Input Output Sample Input 2 1 1 2 1 1 2 2 Sample Output 5 HINT N<=20000,M<=100000 Source dijkstra+堆优化+分层图 把所有的横向和纵向分开看.跑最短路即可. 注意:N这么大,不能写…
题目 F.A.Qs Home Discuss ProblemSet Status Ranklist Contest 入门OJ ModifyUser  DCOI Logout 捐赠本站 Notice:1:注册本OJ方式请见https://www.lydsy.com/JudgeOnline/wttl/thread.php?tid=5671 2:替用户ir1d发布如下信息,希望大家能够积极支持. OI Wiki 致力于成为一个开放自由的 OI 知识整合站点,欢迎感兴趣的同学参与贡献 https://o…
题目链接 对于相邻的.处在同在一行或一列的车站连边,然后用dis[x][0/1](或者拆点)分别表示之前是从横边还是竖边到x的,跑最短路. 我选择拆点.. //13028kb 604ms #include <queue> #include <cstdio> #include <cctype> #include <cstring> #include <algorithm> //#define gc() getchar() #define MAXIN…
按照横,竖为方向跑一个最短路即可,算是水题~ #include <bits/stdc++.h> #define N 200005 #define E 2000000 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,m,tot,edges,s,T; int hd[E],to[E],nex[E],val[E],d[E],done[E],id[E][2]; void a…
分层图最短路[bzoj2834]: 回家的路 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2834 这道题难在建边. 自己写的时候想到了两边排序这些细节,但是思路出错在跑最短路的时候. 前几天做的水壶也是难在建边.一想那个题我就开始敲广搜,可是要比自己想的难.之后冷静了一下想到了排序建边.建完边之后就可以开始跑最短路了. 这道题确实加深了我对分层图最短路的理解. 因为当时自己敲的时候还是设了两维的状态,第二维我设的是方向,因为只会横…
P3831 [SHOI2012]回家的路 分层图基础题,就是建图稍有麻烦   #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #include<map> #include<iomanip> #include<cstring> #define reg register #define EN std::puts("&quo…
题目背景 SHOI2012 D2T1 题目描述 2046 年 OI 城的城市轨道交通建设终于全部竣工,由于前期规划周密,建成后的轨道交通网络由2n2n条地铁线路构成,组成了一个nn纵nn横的交通网.如下图所示,这2n2n条线路每条线路都包含nn个车站,而每个车站都在一组纵横线路的交汇处. 出于建设成本的考虑,并非每个车站都能够进行站内换乘,能够进行站内换乘的地铁站共有mm个,在下图中,标上方块标记的车站为换乘车站.已知地铁运行 1 站需要 2 分钟,而站内换乘需要步行 1 分钟.Serenade…
---题面--- 题解: 吐槽:找了好久的错,换了n种方法,重构一次代码,,,, 最后发现,,, 数组开小了,其实一开始尝试开大了数组,但唯独没有尝试开大手写队列的数组.... 思路: 有两种方法,这里都介绍一下吧,分别在时间复杂度和代码复杂度上各有优势. 第一种:时间复杂度更优,代码复杂 观察到转弯时需要多消耗1的费用,不转弯则不用.因此我们记录一个last表示这个点的最短路是从哪走来的.(其实就是记录路径) 然后注意到A ---> C 与A ---> B ---> C是等效的,因此我…
题目背景 SHOI2012 D2T1 题目描述 \(2046\) 年 \(OI\) 城的城市轨道交通建设终于全部竣工,由于前期规划周密,建成后的轨道交通网络由\(2n\)条地铁线路构成,组成了一个\(n\)纵\(n\)横的交通网.如下图所示,这\(2n\)条线路每条线路都包含\(n\)个车站,而每个车站都在一组纵横线路的交汇处. 出于建设成本的考虑,并非每个车站都能够进行站内换乘,能够进行站内换乘的地铁站共有\(m\)个,在下图中,标上方块标记的车站为换乘车站.已知地铁运行 \(1\) 站需要…
题面 完了,做的时候已经想不起来分层图这个东西了QAQ 对于这种“多种”路径加中转站的题,还有那种有若干次“特殊能力”的题,都可以考虑用分层图来做 显然只需要记录所有的中转站+起点终点,然后拆出横竖两层,一层的点之间连值为$2$的边,每个站的两层之间连值为$1$的边,然后再跑最短路.注意数组大小,还有起点和终点的两层是连零边的 #include<queue> #include<cstdio> #include<cstring> #include<algorithm…