神奇的问题......求助啊啊啊啊
查看原帖
神奇的问题......求助啊啊啊啊
496113
Ceriksen楼主2021/4/27 13:10

各位可以不用看全部代码,主要问题就是主程序第一行:加上之后就是wa,去掉后就a了,这是为什么啊......

#include<bits/stdc++.h>
using namespace std;
#define ll long long

int n,m,q;
int dis[207][207],t[207],nw;

int main(){
	ios::sync_with_stdio(false);
	cin>>n>>m;
	
	for(register int i=0;i<n;++i)
	cin>>t[i];
	
	for(register int i=0;i<n;++i)
	for(register int j=0;j<n;++j)
	{
		if(i==j)dis[i][j]=0;
		else dis[i][j]=1000000007;
	}	
	
	for(register int i=1;i<=m;++i){
		int x,y,w;cin>>x>>y>>w;
		dis[x][y]=dis[y][x]=w;
	}
	
	cin>>q;
	while(q--){
		int x,y,z;cin>>x>>y>>z;
		while(t[nw]<=z&&nw<n){
			
			for(register int i=0;i<n;++i)
			for(register int j=0;j<n;++j)
			if(dis[i][j]>dis[i][nw]+dis[nw][j])dis[i][j]=dis[i][nw]+dis[nw][j];
			
			nw++;
		}
		if(t[x]>z||t[y]>z){
			puts("-1");
			continue;
		}
		else if(dis[x][y]==1000000007)puts("-1");
		else cout<<dis[x][y]<<endl;
	}
	
	return 0;	
}
2021/4/27 13:10
加载中...