关于O2
  • 板块P1119 灾后重建
  • 楼主XMqing
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/16 10:57
  • 上次更新2023/12/16 12:51:15
查看原帖
关于O2
1019048
XMqing楼主2023/12/16 10:57

这题我开o2能AC,但是不开o2就会WA是什么原因。 附上代码

#include<bits/stdc++.h>
using namespace std;
int e[205][205],n,m,ti[205],i,j,w,q,ans[50005],k;
inline void floyd(){
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
}
int main(){
	memset(e,63,sizeof(e));
	cin>>n>>m;
	for(int u=0;u<n;u++) e[u][u]=0;
	for(int u=0;u<n;u++) cin>>ti[u];
	for(int u=0;u<m;u++){
		cin>>i>>j>>w;
		e[i][j]=w;
		e[j][i]=w;
	}
	cin>>q;
	for(int u=0;u<q;u++){
		int x,y,t;
		cin>>x>>y>>t;
		while(t>=ti[k]){
			floyd();
			k++;
		}
		if(t<ti[x]||t<ti[y]||e[x][y]>=1000000000) ans[u]=-1;
		else ans[u]=e[x][y];
	}
	for(int u=0;u<q;u++) cout<<ans[u]<<endl;
}
2023/12/16 10:57
加载中...