挺懵的。。。 T1 实际上不难。 发现对于同一条边来说。 我们的答案关于我们取得点在这个边上的位置是一个单谷函数,因为两侧取max。 然后直接三分边上所在的位置。 check的时候首先用随便什么最短路处理出每个点之间互相的距离即可求值了。 T2 很棒的二进制分组。 我们把这种满足要求的路径拆成三段$ ...
分类:
其他好文 时间:
2020-01-29 20:04:57
阅读次数:
107
//判断负环 在负环内的城市输出? #include <iostream> #include <queue> #include <cstdio> #include <algorithm> #include <string.h> #include <string> using namespace st ...
分类:
其他好文 时间:
2020-01-27 19:09:16
阅读次数:
82
#include<iostream> #include<algorithm> #include<queue> #include<cstdio> #include<cstring> using namespace std; const int N=1100,INF=0x3f3f3f3f; int h[ ...
分类:
其他好文 时间:
2020-01-27 17:35:24
阅读次数:
81
//从起点1到剩余P-1个点的最短距离之和+从剩余P-1个点到起点1的最短距离之和 #include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; const int LEN=100 ...
分类:
其他好文 时间:
2020-01-27 15:55:06
阅读次数:
58
#include<cstdio> #include<cmath> #include<cstring> #include<cstring> #include<iostream> #include<queue> using namespace std; const int N=205; const do ...
分类:
其他好文 时间:
2020-01-27 15:42:59
阅读次数:
49
//判断负环 dist初始化为正无穷 //正环 负无穷 #include<iostream> #include<cstring> #include<queue> #include<algorithm> using namespace std; const int N=1e5,INF=0x3f3f3f ...
分类:
其他好文 时间:
2020-01-27 13:44:16
阅读次数:
61
//spfa 判断正环 #include<iostream> #include<queue> #include<cstring> using namespace std; const int N=1e4; const int INF=2e9; int h[N],to[N],ne[N],idx; do ...
分类:
其他好文 时间:
2020-01-27 12:31:58
阅读次数:
72
spfa 有负边时使用 复杂度可以被卡到nm(坑:怎么卡?) 判负环(一个点入队了n次) djkstra 每次走最短的路 有负边时不能使用 每次出队一个点(logn),更新点的所有边(均摊m),所以(n+m)logn 没有负边求最短路不要作死用spfa。。。 ...
分类:
其他好文 时间:
2020-01-27 11:08:53
阅读次数:
67
"Link" 直接转移可能会有环对吧,所以用spfa转移就完事了。 ...
分类:
Web程序 时间:
2020-01-27 09:43:23
阅读次数:
79
题解 最短路径经典题型。套最短路的板子再加上额外的要求就可以了(说起来好简单)。SPFA也行,Dijkstra也可以。这里我用的是SPFA。因为题目要求,将地名和其对应的数字用map映射一下,这样方便处理。 same[i]代表到达地点 i 有几种路径; dist[i]代表从起点到地点 i 的最短距离 ...
分类:
其他好文 时间:
2020-01-24 00:32:49
阅读次数:
112