全wa,大佬救救
查看原帖
全wa,大佬救救
610758
2009cqr楼主2023/12/5 21:21
#include<bits/stdc++.h>
using namespace std;
#define LF putchar('\n')
#define SP putchar(' ')
#define rep(i,a,b) for(register int i=(a);i<=(b);++i)
#define repp(i,a,b) for(register int i=(a);i>=(b);i--)
#define pill pair<int,int>
#define mem(t, v) memset((t),v,sizeof(t))
#define fir first
#define sec second
#define mk make_pair
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define lc root<<1
#define rc root<<1|1
typedef long long ll;
typedef unsigned long long ull;
template<typename T>
void read(T &x) {x=0;char ch=getchar();ll f=1;while(!isdigit(ch)){if(ch=='-')f*=-1;ch=getchar();}while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}x*=f;}
template<typename T, typename... Args>
void read(T &first, Args& ... args) {read(first);read(args...);}
template<typename T>
void write(T arg) {T x=arg;if(x<0) {putchar('-');x=-x;}if(x>9) {write(x/10);}putchar(x%10+'0');}
template<typename T, typename ... Ts>
void write(T arg, Ts ... args) {write(arg);if(sizeof...(args)!=0) {putchar(' ');write(args ...);}}
const ll mod=10007,N=200+10;
ll n,m,dp[N][N],a[N],q,last,now;
signed main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	read(n,m);
	rep(i,1,n){
		rep(j,1,n)dp[i][j]=1e9;
	}
	rep(i,1,n){
		read(a[i]);
		dp[i][i]=0;
	}

	rep(i,1,m){
		int a,b,c;
		read(a,b,c);
		a++,b++;
		dp[a][b]=dp[b][a]=c;
	}
	read(q);
	while(q--){
		int x,y,t;
		read(x,y,t);
		x++,y++;
		int k=lower_bound(a+1,a+1+n,t)-a;
		now=k;
		rep(k,last+1,now){
			rep(i,1,n){
				rep(j,1,n)dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
			}
		}
		if(dp[x][y]==1e9 or a[x]>t or a[y]>t)write(-1);
		else write(dp[x][y]);
		LF;
		last=now;
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}

去wa求调

2023/12/5 21:21
加载中...