Loading

2.25 CW 模拟赛 T2. 大根堆

前言

希望出题人知道一般情况下大根堆是完全二叉树, 谢谢
希望一些同学查证之后在评价, 没有查证之前先别评价, 谢谢
这些话是我傻逼, 但是放在这里作为进食

思路

题意

要求构造出一颗有 nn 个节点的二叉树, 其中满足对于任意非叶子节点, 其对应的值大于其左右儿子
给定一个集合 S\mathbb{S} , 要求 S\mathbb{S} 中的值对应的节点在叶子节点上

不难想到按照从大到小的顺序考虑, 因为确定最大值放到根上之后, 其他的可以类似处理, 更有确定性
然后可以发现只要当前的值放在一个已经被放置的节点的左右儿子上, 一定符合性质

不难发现可以确定当前节点可以被插入到多少个节点中, 不妨记为 \(s\)

  • 如果当前加入的点没有被钦定是叶结点, 那么它不管插入在哪里都会让 \(s\) 恰好增加 \(1\)
  • 如果当前插入的点被钦定了是叶结点, 那么它不管插入在哪里都会让 \(s\) 恰好减少 \(1\)

结束

总结

常常先处理确定的部分

posted @ 2025-02-25 16:31  Yorg  阅读(7)  评论(0)    收藏  举报