多源最短路+Floyd真香【洛谷P1119】

传送门:https://www.luogu.org/problemnew/show/P1119

我:这什么辣鸡算法啊,O(n^3)能用?敲dijkstra啊!

我:?TLE???

:写个Floyd啊!

我:我才不写这个垃圾O(n^3)

评测鸡:Accepted!

我:哎呦真香。

这题用dijkstra每次跑一遍,第一次50分,改了改scanf,跑了60分,改了改printf,开了O2,跑了80分,改了改memset,还是80分,看来dijkstra到头了...

这题是q次询问,而且是多源最短路,而且每次询问的时间都是递增的,所以那就直接Floyd就好啦。

哎呦真香。


Floyd大家肯定都会吧,大概就是DP思想。

上代码:

#include 
using namespace std;
const int maxn = 210;
const int INF = 1e9+7;
int d[maxn][maxn];
int t[maxn];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,m;
	cin>>n>>m;
	memset(d,0x7f,sizeof(d));
	for(int i=0;i>t[i];
	}
	for(int i=0;i>x>>y>>z;
		d[x][y] = z;
		d[y][x] = z;
	}
	int q;
	int p = 0;
	cin>>q;
	for(int i=0;i>x>>y>>z;
		for(;t[p]<=z && pz || t[y]>z || d[x][y]>=INF) cout<<"-1"<

 

你可能感兴趣的:(多源最短路+Floyd真香【洛谷P1119】)