随笔分类 - 算法->图论->Dijkstra
优化方式:堆,线段树(zkw线段树或记录每个点在树中位置)
    
摘要:LOJ 3087. 「GXOI / GZOI2019」旅行者 正着求一遍dij,反着求一遍,然后枚举每条边,从u到v,如果到u最近的点和v能到的最近的点不同,那么可以更新答案 没了 cpp include define fi first define se second define pii pai
        阅读全文
                
摘要:题解 显然要记录每个点来的状态,这样会扩充出点度的平方条边,就gg了 删掉所有的点,把每个边拆成两个点,连一条边权为c 这个时候我们考虑对于原先的每个点,将所有与其相连边所需要的节点(不管是进入还是出去)建一棵虚树,然后用线段树优化建图,优化方法是枚举每个lca,然后将lca的每个子树和其他子树连一
        阅读全文
                
摘要:题解 每次按较长边把矩形分成两半,找一个中间轴,轴上的每个点跑一边最短路更新所有的答案 然后把矩形分成两半,递归下去 代码 cpp include define enter putchar('\n') define space putchar(' ') define pii pair define 
        阅读全文
                
摘要:题解 首先求一个最短路图出来,最短路图就是这条边在最短路上就保留,否则就不保留,注意最短路图是一个有向图,一条边被保留的条件是 dis(S,u) + val(u,v) = dis(v,T)我们需要求两遍最短路 然后我们发现就相当于在最短路图上走一段,然后走一段非0的部分 我们把旧图保留,在上面连一些
        阅读全文
                
摘要:题解 (搬运一个原来博客的论文题) 抱着板题的心情去,结果有大坑 就是S == T的时候也一定要走,++K 我发现按照论文写得$O(n \log n + m + k \ log k)$算法没有玄学A 快,不开心啊(或者我松教水平不高啊) 论文里主要是怎么样呢,把所有边反向,从T开始求最短路,然后求一
        阅读全文
                
摘要:1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4
        阅读全文
                
摘要:最短路(road.pas/c/cpp)题目大意有一个点数为 n,边数为 m 的无向图,点的编号为 1 到 n。边的权值均为非负数。现在请你求出从点 1 到点 n 的最短路径条数,若有无限条则输出-1,答案对于1000000009 取模。输入文件输入文件为 road.in。输入共有 m+1 行。第一行
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号