P14984 [USACO26JAN1] Lineup Counting Queries P

题目描述

有一队奶牛,初始时(即时刻 $t = 0$)只有奶牛 $0$ 在位置 $0$(这里,一头奶牛在位置 $k$ 表示它前面有 $k$ 头奶牛)。在时刻 $t$($t=1,2,3,\dots$),位置 $0$ 的奶牛移动到位置 $\lfloor t/2\rfloor$,位置 $1\dots \lfloor t/2\rfloor$ 上的每头奶牛向前移动一个位置,并且奶牛 $t$ 加入到队列的末尾(位置 $t$)。 回答 $Q$($1\le Q\le 10^5$)个独立的查询,每个查询形式如下: - 在奶牛 $l_1\dots r_1$ 中,有多少头在时刻 $t$ 刚结束时位于位置 $l_2\dots r_2$ 上?($0\le l_1\le r_1\le t, 0\le l_2\le r_2 \le t, t\le 10^{18}$)

输入格式

第一行包含 $Q$,表示查询的数量。 接下来的 $Q$ 行,每行包含五个整数,指定一个查询,格式为 "$l_1$ $r_1$ $l_2$ $r_2$ $t$"。

输出格式

将每个查询的答案输出在单独一行。

说明/提示

不同时刻的队列排列: ```none t = 0 | 0 t = 1 | 0 1 t = 2 | 1 0 2 t = 3 | 0 1 2 3 t = 4 | 1 2 0 3 4 t = 5 | 2 0 1 3 4 5 t = 6 | 0 1 3 2 4 5 6 t = 7 | 1 3 2 0 4 5 6 7 t = 8 | 3 2 0 4 1 5 6 7 8 t = 9 | 2 0 4 1 3 5 6 7 8 9 ``` 在 $t=9$ 时,从前到后的奶牛依次是 $[2,0,4,1,3,5,6,7,8,9]$。 为了回答第三个查询,位置 $3\dots 5$ 上的奶牛是 $[1,3,5]$,其中只有一头在范围 $4\dots 5$ 内。 --- - 输入 $3$:$Q\le 1000, t\le 100$ - 输入 $4$-$7$:所有查询中 $l_1 = r_1$ - 输入 $8$-$14$:所有查询中 $r_1 \leq 2 \cdot l_1$ - 输入 $15$-$21$:无额外约束。 翻译由 DeepSeek V3 完成