CF2179H Blackslex and Plants
题目描述
Blackslex 在因人际关系紧张、政治压力大以及研究压力繁重而积累的压力中,找到了在植物和树木中安慰自己的方式。
Blackslex 拥有 $n$ 棵依次排成一排的植物,分别为第 $1,2,3,\ldots,n$ 棵。一开始,每棵植物中的水量为 $0$ 毫升。
他打算执行 $q$ 次浇水操作,具体如下:
- 对于每次操作,给出 $l, r$
- 对于每一棵第 $l \leq i \leq r$ 棵植物,向其浇灌 $f(i-l+1)$ 毫升的水
其中,$f(x)$ 表示 $x$ 与 $x$ 的最低有效位的乘积$^{\text{∗}}$。你的任务是,所有浇水操作结束后,计算每棵植物中的水量。
$^{\text{∗}}$ $x$ 的最低有效位的值指的是 $x$ 的二进制表示中最右侧为 $1$ 的那一位所表示的值。例如,$10=1010_2$ 的最低有效位的值为 $0010_2=2$。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 10^4$)——表示测试用例组数。
每个测试用例的第一行包含两个整数 $n$ 和 $q$($1 \leq n, q \leq 2\cdot 10^5$)——植物数量和浇水操作数量。
每个测试用例接下来的 $q$ 行,每行包含两个整数 $l$ 和 $r$($1 \leq l \leq r \leq n$)——每次浇水操作的左右区间。
保证所有测试用例的 $n$ 之和与 $q$ 之和不超过 $2\cdot 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数,表示每一棵第 $i$ 棵植物中的水量($i=1,2,...,n$)。
说明/提示
在第一个样例中,每次操作的细节如下:
1. 第一次操作:
- 向第 $1$ 棵植物浇水 $f(1-1+1)=f(1)=1$ 毫升。
- 向第 $2$ 棵植物浇水 $f(2-1+1)=f(2)=4$ 毫升。
- 向第 $3$ 棵植物浇水 $f(3-1+1)=f(3)=3$ 毫升。
- 向第 $4$ 棵植物浇水 $f(4-1+1)=f(4)=16$ 毫升。
- 向第 $5$ 棵植物浇水 $f(5-1+1)=f(5)=5$ 毫升。
2. 第二次操作:
- 向第 $2$ 棵植物浇水 $f(2-2+1)=f(1)=1$ 毫升。
- 向第 $3$ 棵植物浇水 $f(3-2+1)=f(2)=4$ 毫升。
3. 第三次操作:
- 向第 $2$ 棵植物浇水 $f(2-2+1)=f(1)=1$ 毫升。
- 向第 $3$ 棵植物浇水 $f(3-2+1)=f(2)=4$ 毫升。
- 向第 $4$ 棵植物浇水 $f(4-2+1)=f(3)=3$ 毫升。
- 向第 $5$ 棵植物浇水 $f(5-2+1)=f(4)=16$ 毫升。
因此,每棵植物的总水量为:
1. $1$ 毫升
2. $4+1+1=6$ 毫升
3. $3+4+4=11$ 毫升
4. $16+3=19$ 毫升
5. $5+16=21$ 毫升
由 ChatGPT 5 翻译