P1119求调
  • 板块学术版
  • 楼主yemengzhi
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/15 19:52
  • 上次更新2024/10/15 21:27:49
查看原帖
P1119求调
370916
yemengzhi楼主2024/10/15 19:52
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f3f3f3f
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int tt[200];
int n,m;
int a[201][201];
int dis[201];
int diss[201][201];
int g[201][201];
signed main()
{
	IOS
	memset(a,inf,sizeof(a));
	cin>>n>>m;
	for(int i=0;i<n;i++)
		cin>>tt[i],a[i][i]=0;
	for(int i=0;i<m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		a[u][v]=a[v][u]=w;
	}
	int T;
	cin>>T;
	while(T--)
	{
		memset(dis,0,sizeof(dis));
		int x,y,t;
		cin>>x>>y>>t;
		for(int i=0;i<n;i++)
		{
			if(tt[i]<=t)
				dis[i]=1;
		}
		if(dis[x]==0||dis[y]==0)
		{
			cout<<-1<<endl;
			continue;
		}
		for(int k=0;k<n;k++)
		{
			if(dis[k]==0)
				break;
			for(int i=0;i<n;i++)
			{
				if(dis[i]==0)
					break;
				for(int j=0;j<n;j++)
				{
					if(dis[j]==0)
						break;
					a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
				}
			}
		}
		//cout<<inf<<endl;
		if(a[x][y]>=inf)
			cout<<"-1"<<endl;
		else
			cout<<a[x][y]<<endl;
	}
} 
  

真找不出问题了,玄关

2024/10/15 19:52
加载中...