2019 Multi-University Training Contest 2 - 1011 - Keen On Everything But Triangle - 线段树

http://acm.hdu.edu.cn/showproblem.php?pid=6601

首先要贪心地想,题目要最长的边长,那么要怎么构造呢?在一段连续的区间里面,一定是拿出最长的三根出来比,这样一定是最大的(废话)。而且假如组成三角形失败的话最长的那根这次就没有用了。

考虑临界情况,也就是刚刚好不能组成三角形的时候,要在1e9内尽可能地安排多的棒子,那就不妨设为:1,1,2,3,5,8……也就是斐波那契数列。可以打出来发现在43项左右的时候已经接近1e9了。

也就是每个区间真正有用的只是最长的50根。

考虑对每个区间建立线段树,线段树里面就存当前区间最长的至多50根。

猜你喜欢

转载自www.cnblogs.com/Yinku/p/11240470.html