written on 2022-06-20
昨天月赛的一道题目,写点感触。
题意:对于一棵给定的有根树,每一个点只有其父亲被选取后它才可以被选取,其 被选取权值 为当前值与其权值的较小值,求最大的总权值。
直观的思路是每选取一个点,就将它的所有儿子的权值塞入堆,这样的时间复杂度为 \(O(n\log n)\)。考虑优化。那么对于一个点 \(i\),其可以贡献的最大权值 \(Q\) 即为 \(\min(Q_i,Q_{fa_i})\)。
引理:对于每一个点 \(i\),其最大贡献值总为 \(Q_i\)。
感性证明:假设当前存在一个大根堆,那么所有的权值,因为已经由其父亲更新过,所以每次只要选取堆顶权值,即可保证选择的最优性。
此类题的要素在于决策的贪心性,发现每一个点的权值只与其祖先结点有关,与其他结点,经按贪心顺序排好后无关。
这题难度显示在黄偏下,但是对于我这种菜鸟还是有一定的思路启发意义的。
update on 2022-7-31
这题确实对贪心的思考有一定的启发意义,但是和拓扑序有什么关系。。
标签:一个点,拓扑,选取,这题,2022,权值,有关,贪心 来源: https://www.cnblogs.com/Freshair-qprt/p/16538246.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。