题目描述
给定一颗$n$个点的树,树边带权,试求一个排列$P$,使下式的值最大
$$\sum \limits_{i=1}^{n-1}maxflow(P_i,P_{i+1})$$
其中$maxflow(s,t)$表示从点$s$到点$t$之间的最大流,即从$s$到$t$的路径上最小的边权
输入格式
第一行一个整数$n$,表示点数
下接$n−1$行,每行三个数$u,v,w$表示一条连接点$u$和点$v$权值为$w$的边
输出格式
输出一行一个整数,表示答案
样例
样例输入:
2
1 2 2333
样例输出:
2333
数据范围与提示
对于前$5\%$的数据满足$n\leqslant 8$
对于前$40\%$的数据满足$n\leqslant 200$
对于前$60\%$的数据满足$n\leqslant 2,000$
对于$100\%$的数据满足$n\leqslant 100,000$
题解
我也不是到这是什么玄学神题……
码个对拍惊喜的发现其实就是边权和,然而我考试的时候暴力没打对于是只有$95$分……
证明可以用贪心(有时间再证吧……)
记得开$long\ long$就好了,否则$0$分的哦~
时间复杂度:$\Theta(n)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h> using namespace std; int n; long long ans; int main() { scanf("%d",&n); for(int i=1;i<n;i++) { int w; scanf("%d%d%d",&w,&w,&w); ans+=w; } printf("%lld",ans); return 0; }
rp++
原文地址:https://www.cnblogs.com/wzc521/p/11629983.html
时间: 2024-11-08 22:58:18