灾后重建---Floyd思想
以后读题一定要看清楚条件
这题时间数组是不减的,查询时也是不减的,没看到,映射半天。。。


题目链接
#include
#include
#include
using namespace std;
typedef pair<int, int> PII;
const int N = 210,INF=0x3f3f3f3f;
int w[N];
int d[N][N];
int n,m;
signed main()
{cin>>n>>m;memset(d,0x3f,sizeof d);for(int i=0;i<n;i++)cin>>w[i],d[i][i]=0;for(int i=0;i<m;i++){int a,b,c;cin>>a>>b>>c;d[a][b]=d[b][a]=c;}int q;cin>>q;int pos=0;while(q--){int x,y,t;cin>>x>>y>>t;for(;w[pos]<=t&&pos<n;pos++)for(int i=0;i<n;i++)for(int j=0;j<n;j++)d[i][j]=d[j][i]=min(d[i][j],d[i][pos]+d[pos][j]);if(w[x]>t||w[y]>t)cout<<-1<<'\n';else{if(d[x][y]>INF/2)cout<<-1<<'\n';else cout<<d[x][y]<<'\n';}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
