40pts求助,在线等,急
查看原帖
40pts求助,在线等,急
791890
SwiftFlash楼主2023/8/17 21:04

6个TLE

#include <iostream>
#include <cstring>
using namespace std;
int arr[1005][1005];
int n,m,a,b,c,ans;

void read(int& a)
{
	int s=0,w=1;
	char ch=getchar();
	while (ch<'0'||ch>'9'){
		if (ch=='-')
			w=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		s=s*10+ch-'0';
		ch=getchar();
	}
	a=s*w;
}

int main(){
	read(n);
	read(m);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			arr[i][j]=1e8;
		arr[i][i]=0;
	}
	for(int i=1;i<=m;i++){
		read(a);read(b);read(c);
		arr[a][b]=min(arr[a][b],c);
	}
	for(int k=1;k<=n;k++)
   		for(int i=1;i<=n;i++)
   			for(int j=1;j<=n;j++)
    			if(arr[i][j]>arr[i][k]+arr[k][j])
    				arr[i][j]=arr[i][k]+arr[k][j];
	for(int i=2;i<=n;i++)
		ans+=arr[1][i]+arr[i][1];
	cout << ans;
	return 0;
}
2023/8/17 21:04
加载中...