https://ac.nowcoder.com/acm/contest/65157/F 贴出一个比较高效,且简洁的代码 贪心策略: 1、优先合并两个权值最小的数。 2、当有多个权值最小的数,优先合并两个层数最小的数。 解题思路: 因为哈夫曼树在合并的过程中,产生的数X按照<权值,层数>从小到大, 但已经给出1-n的数,所以当X<=n时,不能直接插在队列后面,要使用优先队列。 而当X>n时,X可以直接插在队列后面,可以使用双端队列,使用双端队列是为了方便后续操作。 #include<bits/stdc++.h> using&...