P1629来的,pts25
  • 板块P1342 请柬
  • 楼主zhangzirui66
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/6/1 13:58
  • 上次更新2024/6/1 15:45:36
查看原帖
P1629来的,pts25
1137373
zhangzirui66楼主2024/6/1 13:58
#include<bits/stdc++.h>
using namespace std;
const long long INF = 2e18;
long long n, m;
long long u[100005], v[100005], w[100005];
long long dis[100005];
void f(){
	for(long long i = 1; i <= n; i ++) dis[i] = INF;
	dis[1] = 0;
	for(long long k = 1; k <= n - 1; k ++)
		for(long long i = 1; i <= m; i ++)
			if(dis[v[i]] > dis[u[i]] + w[i])
				dis[v[i]] = dis[u[i]] + w[i];
}
int main(){
	scanf("%lld%lld", &n, &m);
	for(long long i = 1; i <= m; i ++) scanf("%lld%lld%lld", &u[i], &v[i], &w[i]);
	long long ans = 0;
	f();
	for(long long i = 1; i <= n; i ++) ans += dis[i];
	for(long long i = 1; i <= m; i ++) swap(u[i], v[i]);
	f();
	for(long long i = 1; i <= n; i ++) ans += dis[i];
	printf("%lld", ans);
	return 0;
}
2024/6/1 13:58
加载中...