大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
- 这道题最初博主理解错误,误以为学了某种文化就不能到排斥这种文化的地方去(明明也是这样写的好吧),实际上只用判断到达的国家是否排斥现在所在国家的文化,那就简单多了,
Floyd
走起,下面是代码:
#include <stdio.h>
using namespace std;
const int MAX=999999;
const int MAXN=105;
int n,k,m,s,t,
c[MAXN],
a[MAXN][MAXN],
e[MAXN][MAXN],
i,j,q,u,v,w;
int main()
{
scanf("%d%d%d%d%d",&n,&k,&m,&s,&t);
for(i=1;i<=n;i++) scanf("%d",&c[i]);
for(i=1;i<=k;i++)
for(j=1;j<=k;j++) scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
if(i==j) e[i][j]=0;
else e[i][j]=MAX;
}
for(i=1;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
e[u][v]=w;
e[v][u]=w;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j&&a[c[j]][c[i]]==1)
e[i][j]=MAX;
for(q=1;q<=n;q++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(e[i][j]>e[i][q]+e[q][j]) e[i][j]=e[i][q]+e[q][j];
if(e[s][t]<MAX) printf("%d\n",e[s][t]);
else printf("-1\n");
return 0;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172047.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...