floyd 6 TLE
查看原帖
floyd 6 TLE
540363
AKPC楼主2022/10/5 14:25

求助!!

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,dis[3001][3001],u,v,w,ans=0;
inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-') f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
inline void write(int x){
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
signed main(){
	n=read(),m=read();
	memset(dis,0x3f,sizeof(dis));
	while (m--) u=read(),v=read(),w=read(),dis[u][v]=min(dis[u][v],w);
	for (int x=1;x<=n;x++)
		for (int i=1;i<=n;i++)
			for (int j=1;j<=n;j++)
				if (i!=x&&j!=x)
					dis[i][j]=min(dis[i][x]+dis[x][j],dis[i][j]);
	for (int i=2;i<=n;i++) ans+=(dis[i][1]+dis[1][i]);
	write(ans);
	exit(0);
	return 0;
}

https://www.luogu.com.cn/record/88690351

2022/10/5 14:25
加载中...