#CF2179H. Blackslex and Plants

    ID: 7002 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>位运算数据结构动态规划模拟数学CodeforcesCodeforces Round 1071(Div3)Div3HCF2179H2200

Blackslex and Plants

题目描述

Blackslex 在因人际关系紧张、政治压力大以及研究压力繁重而积累的压力中,找到了在植物和树木中安慰自己的方式。

Blackslex 拥有 nn 棵依次排成一排的植物,分别为第 1,2,3,,n1,2,3,\ldots,n 棵。一开始,每棵植物中的水量为 00 毫升。

他打算执行 qq 次浇水操作,具体如下:

  • 对于每次操作,给出 l,rl, r
  • 对于每一棵第 lirl \leq i \leq r 棵植物,向其浇灌 f(il+1)f(i-l+1) 毫升的水

其中,f(x)f(x) 表示 xxxx 的最低有效位的乘积^{\text{∗}}。你的任务是,所有浇水操作结束后,计算每棵植物中的水量。

^{\text{∗}} xx 的最低有效位的值指的是 xx 的二进制表示中最右侧为 11 的那一位所表示的值。例如,10=1010210=1010_2 的最低有效位的值为 00102=20010_2=2

输入格式

第一行包含一个整数 tt1t1041 \leq t \leq 10^4)——表示测试用例组数。

每个测试用例的第一行包含两个整数 nnqq1n,q21051 \leq n, q \leq 2\cdot 10^5)——植物数量和浇水操作数量。

每个测试用例接下来的 qq 行,每行包含两个整数 llrr1lrn1 \leq l \leq r \leq n)——每次浇水操作的左右区间。

保证所有测试用例的 nn 之和与 qq 之和不超过 21052\cdot 10^5

输出格式

对于每个测试用例,输出 nn 个整数,表示每一棵第 ii 棵植物中的水量(i=1,2,...,ni=1,2,...,n)。

样例

2
5 3
1 5
2 3
2 5
7 7
1 3
1 6
3 7
4 7
7 7
1 6
5 5
1 6 11 19 21 
3 12 10 37 18 43 22

样例说明

在第一个样例中,每次操作的细节如下:

  1. 第一次操作:
    • 向第 11 棵植物浇水 f(11+1)=f(1)=1f(1-1+1)=f(1)=1 毫升。
    • 向第 22 棵植物浇水 f(21+1)=f(2)=4f(2-1+1)=f(2)=4 毫升。
    • 向第 33 棵植物浇水 f(31+1)=f(3)=3f(3-1+1)=f(3)=3 毫升。
    • 向第 44 棵植物浇水 f(41+1)=f(4)=16f(4-1+1)=f(4)=16 毫升。
    • 向第 55 棵植物浇水 f(51+1)=f(5)=5f(5-1+1)=f(5)=5 毫升。
  2. 第二次操作:
    • 向第 22 棵植物浇水 f(22+1)=f(1)=1f(2-2+1)=f(1)=1 毫升。
    • 向第 33 棵植物浇水 f(32+1)=f(2)=4f(3-2+1)=f(2)=4 毫升。
  3. 第三次操作:
    • 向第 22 棵植物浇水 f(22+1)=f(1)=1f(2-2+1)=f(1)=1 毫升。
    • 向第 33 棵植物浇水 f(32+1)=f(2)=4f(3-2+1)=f(2)=4 毫升。
    • 向第 44 棵植物浇水 f(42+1)=f(3)=3f(4-2+1)=f(3)=3 毫升。
    • 向第 55 棵植物浇水 f(52+1)=f(4)=16f(5-2+1)=f(4)=16 毫升。

因此,每棵植物的总水量为:

  1. 11 毫升
  2. 4+1+1=64+1+1=6 毫升
  3. 3+4+4=113+4+4=11 毫升
  4. 16+3=1916+3=19 毫升
  5. 5+16=215+16=21 毫升

由 ChatGPT 5 翻译

来源

Codeforces 2179H,英文题名 Blackslex and Plants。