社区讨论

让题面也变得音游起来,紧扣题目标题。

P5891 Fracture Ray参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mcij92g9
此快照首次捕获于
2025/06/30 11:22
8 个月前
此快照最后确认于
2025/06/30 11:28
8 个月前
查看原帖
有一个 long long 类型的数组 a[]。
在Hikari进行所有操作之前,给定上界参数 v。
Hikari将进行 q 次操作。每次操作为以下两个函数之一:
void Fracture(int u,int p) { for (int i=u;i<=v;i+=count(i)) a[i]+=p; } long long killTairitsu(long long u) { long long ret=0; for (int i=u;i<=v;i+=count(i)) ret+=a[i]; return ret; } 上述程序为 C++ 代码,其中 count(i) 表示 i 二进制下 1 的个数,例如 count(0) 的返回值为 0,而 count(10001279) 的返回值为 15。补充:__builtin_popcount(int)可解决count(i)
上述程序中出现的变量 v 即上界参数 v。
Hikari将执行上述操作,并在每次执行 killTairitsu() 函数后,输出函数的返回值。
输入格式 从标准输入中读取数据。
第一行,两个正整数 q,v,表示操作数,以及上界参数。
接下来 q 行,每行为以下二者之一:
1 u p 表示执行 Fracture(u, p); 2 u 表示执行 killTairitsu(u) 并输出一行一个整数,为函数的返回值。 输出格式 在每次执行 killTairitsu() 函数后,输出函数的返回值。
本人已pure memory此题(人话:AC了),但是ftr11只有986(悲

回复

0 条回复,欢迎继续交流。

正在加载回复...