代码细节非常多的一道题。这里只说思想了先。
首先,找到那些安全树。所有的乌鸦最后一定会到达某一棵安全树上。
因此,对于每只乌鸦,分别向左和向右暴力寻找,看是否可到达安全树。
筛掉可以自己走到的乌鸦。剩下的都是要依靠飞行点的乌鸦。
问题转化: 对于一堆线段,在其间放点并覆盖所有线段。
不妨按照 \(l_i\) 排序,可知肯定放在 \(r_i - 1\) 处最优,因为排序后这样可以尽可能覆盖更多的线段。
最后记得要加 \(1\),因为任意某一棵安全树上也需要放一个飞行点。
标签:P7839,乌鸦,题解,线段,夜雀,Wdoi,singing From: https://www.cnblogs.com/wondering-world/p/16717625.html