玄学MLE
查看原帖
玄学MLE
1268524
DX3906_ourstar楼主2024/7/30 21:17

我知道我的写法连样例都过不了,但——

为甚会MLE啊?

#include<iostream>
#include<cstring>
#include<queue>
#define INF 0x3f3f3f3f
#define re register
using namespace std;

const int N = 19905;

int n,m,q,k;
int t[N],dp[N][N];

inline void cs(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	memset(dp,0x3f,sizeof(dp));
}

int main(){
	cs();
	cin>>n>>m;
	for(re int i = 1;i <= n;i ++){
		cin>>t[i];
		dp[i][i] = 0;
	}
	for(re int i = 1;i <= m;i ++){
		int u,v,w;
		cin>>u>>v>>w;
		dp[u][v] = w;
		dp[v][u] = w;
	}
	cin>>q;
	while(q --){
		int x,y,s;
		cin>>x>>y>>s;
		if(max(t[x],t[y]) > s){
			cout<<-1<<"\n";
			continue;
		}
		while(k < n && t[k] < s){
			for(re int i = 1;i <= n;i ++){
				for(re int j = 1;j <= n;j ++){
					dp[i][j] = dp[j][i] = min(dp[i][j],dp[i][k] + dp[j][k]);
				}
			}
			k ++;
		}
		cout<<(dp[x][y] == INF ? -1 : dp[x][y])<<"\n";
	}
    return 0;
}

我开的数组的大小跟一个同学完全一样,我甚至还少用了两个int,但他AC我MLE???

2024/7/30 21:17
加载中...