萌新求助,90分#2wa
查看原帖
萌新求助,90分#2wa
107620
我太强了楼主2020/12/3 21:16

看了看讨论区,都是80分,似乎没有我这种WA#2的qwq

dalao看看,是哪里写错了啊qwq

#include<bits/stdc++.h>
#define o 105
#define itn int
using namespace std;
int n,m,s;
int ans,dis[o][o],v[o][o];
int read() 
{ 
	char c=getchar(); int x=0,f=1;
	while(c<'0'||c>'9') {if(c=='-') f=-f; c=getchar();} 
	while(c>='0'&&c<='9') {x=(x<<3)+(x<<1)+c-'0'; c=getchar();} 
	return x*f;
} 
int main() 
{ 
	cin>>n>>m;
	ans=2147483647;
	for(int i=1;i<=n;i++) 
	for(int j=1;j<=n;j++) v[i][j]=dis[i][j]=10000007;
	for(int i=1;i<=m;i++) 
	{ 
		int u,w,d;
		u=read(); w=read(); d=read();
		v[u][w]=v[w][u]=dis[u][w]=dis[w][u]=d;
	} 
	for(int k=1;k<=n;k++) 
	{ 
		for(int i=1;i<k;i++) 
		for(int j=i+1;j<k;j++) ans=min(ans,dis[i][j]+v[i][k]+v[k][j]);
		for(int i=1;i<=n;i++) 
		for(int j=1;j<=n;j++) 
		{ 
			dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
			dis[j][i]=dis[i][j];
		} 
	} 
	if(ans==2147483647) printf("No solution.\n");
	else printf("%d\n",ans); 
	return 0;
} 

2020/12/3 21:16
加载中...