【NOIP2017】宝藏 排行榜
时间限制: 1 s
空间限制: 262144 KB
题目描述
参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 $n$ 个深埋在地下的宝藏屋,也给出了这 $n$ 个宝藏屋之间可供开发的 $m$ 条道路和它们的长度。
小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远,也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路则相对容易很多。
小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某个宝藏屋的通道,通往哪个宝藏屋则由小明来决定。
在此基础上,小明还需要考虑如何开凿宝藏屋之间的道路。已经开凿出的道路可以任意通行不消耗代价。每开凿出一条新道路,小明就会与考古队一起挖掘出由该条道路所能到达的宝藏屋的宝藏。另外,小明不想开发无用道路,即两个已经被挖掘过的宝藏屋之间的道路无需再开发。
新开发一条道路的代价是:
这条道路的长度 × 从赞助商帮你打通的宝藏屋到这条道路起点的宝藏屋所经过的宝藏屋的数量(包括赞助商帮你打通的宝藏屋和这条道路起点的宝藏屋)。
请你编写程序为小明选定由赞助商打通的宝藏屋和之后开凿的道路,使得工程总代价最小,并输出这个最小值。
输入格式
从标准输入读入数据。
第一行两个用空格分离的正整数 $n$ 和 $m$,代表宝藏屋的个数和道路数。
接下来 $m$ 行,每行三个用空格分离的正整数,分别是由一条道路连接的两个宝藏屋的编号(编号为 $1$~$n$),和这条道路的长度 $v$。
输出格式
输出到标准输出。
输出共一行,一个正整数,表示最小的总代价。
样例输入一
样例输出一
样例解释一
小明选定让赞助商打通了 $1$ 号宝藏屋。小明开发了道路 $1\rightarrow 2$,挖掘了 $2$ 号宝藏。开发了道路 $1\rightarrow 4$,挖掘了 $4$ 号宝藏。还开发了道路 $4\rightarrow 3$,挖掘了 $3$ 号宝藏。工程总代价为: $$\begin{array}{c}1\times 1\\ \small{(1\rightarrow 2)}\end{array}\begin{array}{c}+\\ \ \end{array}\begin{array}{c}1\times 1\\ \small{(1\rightarrow 4)}\end{array}\begin{array}{c}+\\ \ \end{array}\begin{array}{c}1\times 2\\ \small{(4\rightarrow 3)}\end{array}\begin{array}{c}=4\\ \ \end{array}$$
样例输入二
样例输出二
样例解释二
小明选定让赞助商打通了 $1$ 号宝藏屋。小明开发了道路 $1\rightarrow 2$,挖掘了 $2$ 号宝藏。开发了道路 $1\rightarrow 3$,挖掘了 $3$ 号宝藏。还开发了道路 $1\rightarrow 4$,挖掘了 $4$ 号宝藏。工程总代价为: $$\begin{array}{c}1\times 1\\ \small{(1\rightarrow 2)}\end{array}\begin{array}{c}+\\ \ \end{array}\begin{array}{c}3\times 1\\ \small{(1\rightarrow 3)}\end{array}\begin{array}{c}+\\ \ \end{array}\begin{array}{c}1\times 1\\ \small{(1\rightarrow 4)}\end{array}\begin{array}{c}=5\\ \ \end{array}$$
限制与约定
- 对于20%的数据:
- 保证输入是一棵树,$1\le n\le 8$,$v\le 5000$ 且所有的 $v$ 都相等。
- 对于40%的数据:
- $1\le n\le 8$,$0\le m\le 1000$,$v\le 5000$ 且所有的 $v$ 都相等。
- 对于70%的数据:
- $1\le n\le 8$,$0\le m\le 1000$,$v\le 5000$
- 对于100%的数据:
- $1\le n\le 12$,$0\le m\le 1000$,$v\le 500000$
题目来源
NOIP 2017 Day 2
关于接口中的数组初值说明(最后更新:2023年2月6日)
若题目要求实现函数接口,且该函数中存在仅用于输出的数组(如 void solve(int n, const int *in, int *out)
中的 out
),那么除非另外说明,否则该数组在程序启动时的初值为 0
。
关于标准输出的说明(最后更新:2018年10月23日)
标准输出将被重定向到内存中,所以你的内存使用量也包括了你的标准输出的大小(向上取整到 4KB 的倍数)。
如果你的程序要进行大量输出,请考虑这一点。
关于提交的说明
你提交的代码将会被公开,所有人都可见。如果这不是你所期望的,或者如果想要删除已提交的代码,请联系管理员。
Judge Duck Online | 评测鸭在线
Server Time: 2024-12-04 11:45:00 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠