WA
  • 板块P1119 灾后重建
  • 楼主__why
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/22 20:30
  • 上次更新2024/3/22 22:07:46
查看原帖
WA
768270
__why楼主2024/3/22 20:30

输出除了-1就是0.感觉是初始化的问题,dalao求助。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 205;
int n,m,q,t[maxn],l[maxn][maxn];
int main(){
	cin>>n>>m;
	for(int i = 0;i<n;i++){
		cin>>t[i];
	}
	memset(l,1e9,sizeof l);
	for(int i = 0;i<n;i++)l[i][i] = 0;
	for(int i = 1,x,y,z;i<=m;i++){
		cin>>x>>y>>z;
		l[x][y] = l[y][x] = z;
	}
	cin>>q;
	for(int i = 1,x,y,ti;i<=q;i++){
		cin>>x>>y>>ti;
		if(t[x]>ti||t[y]>ti){
			cout<<-1<<endl;
			continue;
		}
		for(int j = 0;t[j]<=ti&&j<n;j++){
			for(int x = 0;x<n;x++){
				for(int y = 0;y<n;y++){
					l[y][x] = l[x][y] = min(l[x][y],l[x][j]+l[j][y]);
				}
			}
		}
		if(l[x][y]==1e9)cout<<-1<<endl;
		else{
			cout<<l[x][y]<<endl;
		}
	}
	return 0;
}
2024/3/22 20:30
加载中...