CFCF2179H.Blackslex and Plants
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Blackslex 在因人际关系紧张、政治压力大以及研究压力繁重而积累的压力中,找到了在植物和树木中安慰自己的方式。
Blackslex 拥有 n 棵依次排成一排的植物,分别为第 1,2,3,…,n 棵。一开始,每棵植物中的水量为 0 毫升。
他打算执行 q 次浇水操作,具体如下:
- 对于每次操作,给出 l,r
- 对于每一棵第 l≤i≤r 棵植物,向其浇灌 f(i−l+1) 毫升的水
其中,f(x) 表示 x 与 x 的最低有效位的乘积∗。你的任务是,所有浇水操作结束后,计算每棵植物中的水量。
∗ x 的最低有效位的值指的是 x 的二进制表示中最右侧为 1 的那一位所表示的值。例如,10=10102 的最低有效位的值为 00102=2。
输入格式
第一行包含一个整数 t(1≤t≤104)——表示测试用例组数。
每个测试用例的第一行包含两个整数 n 和 q(1≤n,q≤2⋅105)——植物数量和浇水操作数量。
每个测试用例接下来的 q 行,每行包含两个整数 l 和 r(1≤l≤r≤n)——每次浇水操作的左右区间。
保证所有测试用例的 n 之和与 q 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出 n 个整数,表示每一棵第 i 棵植物中的水量(i=1,2,...,n)。
输入输出样例
输入#1
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
1 6 11 19 21 3 12 10 37 18 43 22
说明/提示
在第一个样例中,每次操作的细节如下:
- 第一次操作:
- 向第 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 棵植物浇水 f(2−2+1)=f(1)=1 毫升。
- 向第 3 棵植物浇水 f(3−2+1)=f(2)=4 毫升。
- 第三次操作:
- 向第 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 毫升
- 4+1+1=6 毫升
- 3+4+4=11 毫升
- 16+3=19 毫升
- 5+16=21 毫升
由 ChatGPT 5 翻译