摘要: 题目大意:给定一个 N 个点,M 条边(存在反向边)的有向图,点有点权,求一条从 1 到 N 的路径上,任意选出两个点 p,q (p 在前,q在后),两点点权的差值最大。 根据最短路的 dp 思想,可以先对原图进行一次 dij ,求出从源点出发,到下标为 X 的点的路径中,最小的点权;再对反图进行一 阅读全文
posted @ 2018-11-03 21:45 shellpicker 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个顶点,M 条边的无向图,求一条从 1 号节点到 N 号节点之间的路径,使得第 K+1 大的边权最小,若 1 与 N 不连通,输出 1。 最小化最大值一类的问题,采用二分答案即可,每次跑一遍 dij ,若边权大于二分的值,那么等效边权为1,否则边权为0,最后判断从 1 到 N 阅读全文
posted @ 2018-11-03 20:44 shellpicker 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 代码如下 cpp include using namespace std; const int maxv=1e4+10; const int maxe=5e5+10; const int inf=0x3f3f3f3f; inline int read(){ int x=0,f=1;char ch; 阅读全文
posted @ 2018-11-03 20:08 shellpicker 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 N 个点,M 条边的有向图,边有边权,求从 1 号顶点到 N 号顶点的最短乘积路径。(经过的路径乘积最小)结果对9987取模。 乘积会爆 long long ,同时由于 dij 算法的性质,又不能在 bfs 的过程中对答案取模。 同时,根据对数的性质有 $log(x)+log(y)= 阅读全文
posted @ 2018-11-03 19:33 shellpicker 阅读(453) 评论(0) 推荐(0) 编辑