P14982 [USACO26JAN1] Supervision G
题目描述
奶牛营地有 $N$ 头($1\le N \leq 10^6$)奶牛,编号为 $1\dots N$。每头奶牛要么是营员,要么是教练。
将选择一个非空的奶牛子集去参加实地考察。如果第 $i$ 头奶牛被选中,它将移动到数轴上的位置 $p_i$($0\le p_i \leq 10^9$),其中数组 $p$ 是严格递增的。
一个非空子集被称为**好**的,当且仅当对于每个被选中的营员,在其左侧(含)距离 $D$ ($0\le D \leq 10^9$) 单位内,都存在一个被选中的教练。求有多少个好子集?结果对 $10^9+7$ 取模。
输入格式
第一行包含两个整数 $N$ 和 $D$。
接下来的 $N$ 行,每行包含两个整数 $p_i$ 和 $o_i$。$p_i$ 表示第 $i$ 头奶牛将移动到的位置。$o_i=1$ 表示第 $i$ 头奶牛是教练,而 $o_i=0$ 表示第 $i$ 头奶牛是营员。
保证 $p_i$ 按严格递增顺序给出。
输出格式
输出好子集的数量对 $10^9 + 7$ 取模的结果。
说明/提示
最后两头营员永远不能被选中。其他所有非空子集都是好的,只要当奶牛 $2$ 被选中时,奶牛 $1$ 也被选中。
---
- 输入 $3$:$N=20$
- 输入 $4$:$D=0$
- 输入 $5$-$8$:$N\le 5000$
- 输入 $9$-$16$:无额外约束。
翻译由 DeepSeek V3 完成