突然发现我不会分层图最短路,写一发。 就是同层中用双向边相连,用单向边连下一层 1 #include <cstdio> 2 #include <algorithm> 3 #include <iostream> 4 #include <string> 5 #include <cstring> 6 #i ...
分类:
其他好文 时间:
2016-05-27 08:18:31
阅读次数:
211
五月份没有写过blog. 期中考刚过......漫漫文化课,无尽头. 马上要为联赛开坑了,激动啊. 刚听了孙柘的演讲..%%% 最近刷的题只有一道启发式合并,一道分层图,一道差分约束..然后不知不觉破80啦 80其实是个很小的题量,但是之所以想讲一下是因为 自己在70+的位置浪了很久吧,所以衍生出一 ...
分类:
其他好文 时间:
2016-05-15 16:53:52
阅读次数:
364
分层图最短路,令k=sqrt(n)
如果p>k,那么从这个点出发只需要连
如果p
建有k+1层的分层图,把第0层视为每个位置的源点,对于p
最后的建图:
第1层到第k层每层都向对应的第0层连边权是0的边
每一层相邻的%p相同的点互相连边权是1的边
对于每个>k的,从出发点向可以到达的点连距离=跳跃步数的边
发现这样内存不够,所以把k设小一点。
写错的地方:
1.少加了一种边...
分析:(官方题解) 首先考虑暴力,显然可以直接每次O(n^2) ?的连边,最后跑一次分层图最短路就行了. 然后我们考虑优化一下这个连边的过程 ,因为都是区间上的操作,所以能够很明显的想到利用线段树来维护整个图, 连边时候找到对应区间,把线段树的节点之间连边.这样可以大大缩减边的规模,然后再跑分层图最 ...
分类:
其他好文 时间:
2016-04-20 23:48:16
阅读次数:
269
分析:d[i][j]代表从起点到点j,用了i次免费机会,那就可以最短路求解 #include <stdio.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <string. ...
分类:
其他好文 时间:
2016-04-20 21:41:17
阅读次数:
161
[1003 Sequence] 指数循环节,注意a mod p = 0的情况。此时你的循环节如果返回0,这时你会输出1,而实际上应该是0 [1005 Road] 建立两棵线段树跑分层图(据说要Dijkstra+Heap?)。注意第二棵的叶子节点向第一棵的叶子节点连边。 ...
分类:
其他好文 时间:
2016-04-17 09:05:06
阅读次数:
169
2834: 回家的路 Description Input Output Sample Input 2 1 1 2 1 1 2 2 Sample Output 5 HINT N<=20000,M<=100000 N<=20000,M<=100000 Source dijkstra+堆优化+分层图 把所 ...
分类:
其他好文 时间:
2016-03-30 01:46:28
阅读次数:
361
1579: [Usaco2009 Feb]Revamping Trails 道路升级 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 <= P1_i <= ...
分类:
其他好文 时间:
2016-03-28 02:11:23
阅读次数:
166
2763: [JLOI2011]飞行路线 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着 ...
分类:
其他好文 时间:
2016-03-28 02:01:28
阅读次数:
278