代码
#include
#include
#include
using namespace std;int n,k,m,s,t,c[10000],ma[1000][1000],d[1000][1000];int main(){memset(d,60,sizeof d);cin>>n>>k>>m>>s>>t;for(int i=1;i<=n;i++){cin>>c[i];}for(int i=1;i<=k;i++){for(int j=1;j<=k;j++){cin>>ma[i][j];}}int x,y,z;for(int i=1;i<=m;i++){cin>>x>>y>>z;d[x][y]=z;} for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(ma[c[i]][c[j]]==1){d[j][i]=1<<20;}}} for(int z=1;z<=n;z++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(d[i][j]>d[i][z]+d[z][j]){d[i][j]=d[i][z]+d[z][j];}}}}if(d[s][t]>=(1<<20)){cout<<"-1";}else cout<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!