全都wa,求助
  • 板块P1119 灾后重建
  • 楼主Qtl123
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/27 19:46
  • 上次更新2024/1/27 21:42:19
查看原帖
全都wa,求助
1018534
Qtl123楼主2024/1/27 19:46

最开始样例全是-1 后来就成了这样:

-1
1061109567
1061109567
1061109567

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int dp[1000][10000],a[100000],q,d;
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		dp[x][y]=z;
		dp[y][x]=z; 
	}
	memset(dp,0x3f,sizeof(dp));
	cin>>q;
	for(int t=1;t<=q;t++){
		int x,y,z;
		cin>>x>>y>>z;
		while(d<n&&a[d]<=z){
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					if(dp[i][j]>dp[i][d]+dp[j][d]){
	                    dp[i][j]=dp[i][d]+dp[d][j];
                        dp[j][i]=dp[i][d]+dp[d][j];
                    }
				}
			}
			d++;
		}
		if(dp[x][y]==0x3f||a[x]>z||a[y]>z){
			cout<<"-1"<<endl;
		}else{
			cout<<dp[x][y]<<endl;
		}
	}
}
2024/1/27 19:46
加载中...