[CSP-S模拟测试]:Tree(贪心)
题目描述
给定一颗$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++