社区讨论

玄关:我不是开够了么

P14076[GESP202509 六级] 货物运输参与者 3已保存回复 3

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@mjvik971
此快照首次捕获于
2026/01/01 22:01
2 个月前
此快照最后确认于
2026/01/04 16:10
2 个月前
查看原帖
为什么链式前向星开了1e5会RE,开1e6就过了?
RE Code:
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define debug(n) cout << #n << " = " << n << '\n';
#define deb(n) cout << #n << " = " << n << "    ";
#define div() cout << "-----------------------\n";
int n;int sum;int maxn;
int head[100005],to[100005],val[100005],nxt[100005],tot;
void adde(int u, int v, int value){
	tot++;
	to[tot] = v;
	val[tot] = value;
	nxt[tot] = head[u];
	head[u] = tot;
}
int lea[100005];
void dfs(int now, int fa, int sum){
//	debug(now);
	lea[now] = sum;
	for(int i = head[now];i;i = nxt[i]){
		if(to[i] != fa){
//			debug(to[i]);
//			debug(val[i]);
			dfs(to[i],now,val[i] + sum);
		}
	}
}
signed main(){
    cin >> n;
    for(int i = 1;i < n;i++){
		int u,v,l;cin >> u >> v >> l;
		sum += l;
		adde(u,v,l);
		adde(v,u,l);
	}
	dfs(1,0,0);
	for(int i = 1;i <= n;i++){maxn = max(maxn,lea[i]);}
	cout << sum*2-maxn;
	
    return 0;
}

回复

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

正在加载回复...