社区讨论

救我啊

P1629邮递员送信参与者 5已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@mlh7rkts
此快照首次捕获于
2026/02/11 07:10
上周
此快照最后确认于
2026/02/12 18:40
7 天前
查看原帖
为啥我这段代码一直输出一个非常大的数啊,感觉思路也没有问题啊,求条
C
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e3 + 10;
const int INF = 0x3f3f3f3f;
int n,m,f[maxn][maxn];
ll ans;
int main(){
	memset(f,INF,sizeof(f));
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		f[u][v]=min(f[u][v],w);
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				if(f[i][j]>f[i][k]+f[k][j]){
					f[i][j]=f[i][k]+f[k][j];
				}
			}
		}
	}
	ans=0;
	for(int i=2;i<=n;i++){
		ans+=f[1][i]+f[i][1];
	}
	cout<<ans;
	return 0;
}

回复

9 条回复,欢迎继续交流。

正在加载回复...