Logo Universal Online Judge

UOJ

时间限制:2 s 空间限制:1024 MB
Statistics

题目描述

小 R 要去北京参加比赛。有 $n$ 个城市,北京是 $n$ 号城市。 对于所有 $1\le i\le n-1$,都有参数 $T_i$ 表示从 $i$ 号城市出发,坐大巴可以到达 $[i+1,i+T_i]$ 号城市。 给定正整数 $K$ 和非负整数 $D$。如果从 $i$ 坐大巴到 $j$,小 R 的疲劳程度会增加: $$ \left \lfloor \frac{j-i}{K} \right \rfloor \cdot D $$ 第 $i$ 个城市有风景值 $H_i$,可能为负数。小 R 的快乐度为:所有经过城市的风景值之和 - 总疲劳程度。 你不知道小 R 的位置,因此你需要对于每个 $p$ 求出小 R 从 $p$ 出发到北京的最大的快乐度。

输入格式

第一行三个整数 $n,K,D$。 第二行 $n$ 个整数 $H_1,H_2,H_3,...,H_n$。 第三行 $n-1$ 个整数 $T_1,T_2,...,T_{n-1}$。请使用下面提供的快读板子。

输出格式

设 $p=i$ 的答案为 $f_i$,你需要输出 $f_i+i$ 的异或和。

样例

6 2 1
8 -7 -8 9 0 2
5 3 3 2 1
16

数据范围

Subtask #1 (20 分):$n\le 3000$ 。

Subtask #2 (10 分):$n\le 2\times 10^5$ ,$H_i$ 在范围内均匀随机。

Subtask #3 (10 分):$n\le 2\times 10^5$ ,$K=1$ 。

Subtask #4 (10 分):$n\le 2\times 10^5$ ,$K=n$ 。

Subtask #5 (40 分):$n\le 2\times 10^5$ 。

Subtask #6 (10 分):无特殊限制。

对于所有数据,$1\le K\le n\le 2\times 10^6,0\le D,|H_i|\le 10^{10}$。

提示

请优化代码常数。

快读板子

typedef long long ll; 
#define T (1<<15)
char buf[T],*p1=buf,*p2=buf;
#define nc() (p1==p2&&(p2=buf+fread(p1=buf,1,T,stdin),p1==p2)?-1:*p1++)
ll rd(){ 
    ll x=0;char c;bool s=0; 
    do c=nc();while(c!=45&&(c<48||c>57)); 
    if(c==45)c=nc(),s=1; 
    do x=10*x+(c&15),c=nc();while(c>=48&&c<=57); 
    return s?-x:x; 
}
#undef T