B. 下雨天

给定序列 AiA_i, 初始 Ai=0A_i=0, 多次操作: 给定 xx, Aimin(max(Ai+x,0),i)A_i\gets \min(\max(A_i+x,0),i), 每次求 Ai\sum A_i. n109,q106n\le 10^9,q\le 10^6.

注意到 AiA_i 的图像为一条折线, 且每一段的斜率为 0011, 考虑维护折线. 对于每次操作, 若 x>0x>0, 则会把 AiA_i 的一段前缀换成 Ai=iA_i=i; 若 x<0x<0, 则会把一段前缀换成 Ai=0A_i=0. 使用全局懒标记, 每次操作暴力寻找分界点并修改, 并维护折线下面积即可. 注意到每次操作至多增加一段, 故时间复杂度为 O(q)O(q).

C. 游戏

nn 个点, 可黑白染色, 有 mm 段已被染成黑色, 你可以再染黑 kk 个长度为 ll 的段, 求最长的连续黑球数目. m105,n109m\le 10^5,n\le 10^9.

prviprv_i 表示从初始段 ii 的左端点 1-1 开始, 不断用长为 ll 的段往左覆盖, 首个被覆盖到且未被完全覆盖的初始段编号.

f(i,j)=(i,c)f(i,j)=(i',c) 表示

C. 序列异或

给定 nn, 求满足以下条件的严格递增序列 [a1,a2,,am][a_1,a_2,\ldots,a_m] (mm 自定, ai[1,2n1]a_i\in[1,2^n-1]) 的个数: i:aiai+1ai+20\forall i:a_i\oplus a_{i+1}\oplus a_{i+2}\neq 0. n2×107n\le 2\times 10^7.

发现若 aiai+2a_{i}\sim a_{i+2} 不满足条件, 设 hi(x)\text{hi}(x) 表示 xx 的最高位,