再做一遍floyed

#include<bits/stdc++.h>
#define R register int
using namespace std;
const int inf=0x3f3f3f3f;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>'') if(ch=='-') f=-,ch=getchar();
while(ch>=''&&ch<='') x=(x<<)+(x<<)+ch-'',ch=getchar();
return x*f;
}
int n,m,k,a[][];
int main()
{
n=read();m=read();k=read();
for(R i=;i<=n;i++)
for(R j=;j<=n;j++)
{
if(i==j) a[i][j]=;
else a[i][j]=inf;
}
for(R i=;i<=m;i++)
{
int x=read(),y=read(),z=read();
a[x][y]=min(a[x][y],z);//存在重边
}
for(R k=;k<=n;k++)
for(R i=;i<=n;i++)
for(R j=;j<=n;j++)
a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
for(R i=;i<=k;i++)
{
int x=read(),y=read();
if(a[x][y]>=inf/) printf("impossible\n");
else printf("%d\n",a[x][y]);
}
return ;
}
上一篇:Centos下配置Java运行环境


下一篇:安卓 apk 嵌入H5页面只显示部分