25pts求助qaq
  • 板块P2683 小岛
  • 楼主AC_notonlyAC
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/20 23:35
  • 上次更新2023/11/2 18:55:27
查看原帖
25pts求助qaq
528802
AC_notonlyAC楼主2023/9/20 23:35
#include<bits/stdc++.h>
#define l long long
using namespace std;
l n,m,f[1003][1003];
int main()
{
	cin>>n>>m;
	for(l i=1;i<=n;i++)
    {
		for(l j=1;j<=n;j++)
        {
			if(i!=j) f[i][j]=1e12;
		}
	}
	for(l i=1;i<=m;i++)
    {
		l a;
        cin>>a;
        if(a==0)
        {
            l s,t;
            cin>>s>>t;
            if(f[s][t]==1e12) cout<<-1<<endl;
            else cout<<f[s][t]<<endl;
        }
		else
        {
            l x,y,z;
			cin>>x>>y>>z;
            f[x][y]=min(z,f[x][y]);
            f[y][x]=min(z,f[y][x]);
            for(l j=1;j<=n;j++)
            {
                for(l k=1;k<=n;k++)
                {
                    f[j][k]=min(f[j][k],f[j][x]+f[x][k]);
                    f[k][j]=min(f[k][j],f[k][y]+f[y][j]);
                }
            }
		}
	}
}

样例全过,不知道错在哪

2023/9/20 23:35
加载中...