[CSP-S模拟测试]:Tree(贪心)
Posted wzc521
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CSP-S模拟测试]:Tree(贪心)相关的知识,希望对你有一定的参考价值。
题目描述
给定一颗$n$个点的树,树边带权,试求一个排列$P$,使下式的值最大
$$\sum \limits_i=1^n-1maxflow(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++
以上是关于[CSP-S模拟测试]:Tree(贪心)的主要内容,如果未能解决你的问题,请参考以下文章