卧薪尝胆,厚积薄发。
矿石
Date: Sun Sep 30 13:40:31 CST 2018 In Category: NoCategory

Description:

数轴上有 $n$ 个线段, $m$ 个点,问这些线段的 $2^n-1$ 种组合中有多少都经过同一个点。
$1\leqslant n \leqslant 10^5$

Solution:

直接统计肯定会有重复计算,考虑对每个线段统计他作为集合的最后一条线段使得方案数,先把每条线段缩到他两边的点上,这样两个线段如果相交就一定有一个点在这两个线段上,所以只要统计有多少线段和它相交就会对答案有 $2^k$ 的贡献,统计这个可以把线段按左端点排序然后用双指针,遇到开头就加一,遇到结尾就减一,时间复杂度 $O(n\log_2 n)$ 。

Code:



In tag: 数学-计数
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡