我为什么要来这
花了钱找虐受,可真是够抖M的呀
不正经の题面:
作为钦钦(雨濛)草原最绿的男人,杨某针每天都要开车巡视钦钦草原一圈。
钦钦草原由 n 个城市组成, m 条双向道路连接着它们。经过第 i 条道路要花费的
时间是 \(2^i\)。
杨某针想要经过每条道路至少一次,在此基础上他想最小化他花费的时间。但作为
曾经 \(CTSC\) 的 \(Cu\) 选手,他并不能很快地计算出这个问题。所以他向你求助
被虐的时候突然在网上找到了中国邮递员,然而并不会
然后跟着省队大佬一起听,也是一脸懵逼
最终在_\(rqy\)的帮助下,勉强入了门($ ORZ_{orz} $一波
原话:
;
分析一下题目,就能发现是一个关于欧拉回路的题
根据题目,我们先要讲所有边先遍历一遍(先不考虑重复走)
然后发现,每个点的度数有基♂有偶。
然后我们考虑添加一些边,讲每个点的度数都补为偶数。
而我们补上去的那些边从哪里来呢? 就是那些重复走的边。
现在问题又来了。
如何确定哪些边是要重复走的呢?
可别忘了,这个题中的边权是\(2^i\)次方。
只要选了一个大的,及时将所有比他小的边权都选上,也没有大的大
所以,我们就可以贪心的做。
每次选最小的边,将他作为重复边。
这也就用到了\(\mathfrak{MST}\)
补重复边时,用生成树中的边补就可以辣!!!!。
算fa♂流程:
- 读入数据。同时记录每个点的度数
- 生成一颗树
- dfs,计算每个子树的儿子节点的度,若不是偶数,用生成树中它与它儿子相连的边将度数补回来。
- 输出
End....
原文地址:https://www.cnblogs.com/Lance1ot/p/9160704.html
时间: 2024-10-11 08:53:22