bzoj#P3542. DZY Loves March

DZY Loves March

题目描述

在一片 m×mm \times m 的地上.驻扎着 nn 个军队,编号依次为 1n1 \sim n,第 ii 个军队的位置可用二元组 (xi,yi)(x_i,y_i) 表示,可能有多个军队驻扎在同一个位置。

接下来有 tt 个时刻,每个时刻会发生下列两种事件之一:

  1. xx 个军队向一个方向(向上(U)向下(D)向左(L)向右(R))移动了 dd 个单位。
  2. xx 个军队需要集结和它在同一行或同一列的且编号在 [l,r][l,r] 的军队,也就是说,这些军队需要赶到第 xx 个军队的驻地。

定义第 ii 个军队赶到第 jj 个军队所需的花费为 cost(i,j)=(xixj)2+(yiyj)2cost(i,j)=(x_i-x_j)^2+(y_i-y_j)^2

请你输出每次集结时,所有被集结的军队的花费之和,对 109+710^9+7 取模。

输入格式

第一行,两个数 nnmm

接下来 nn 行,每行两个数 xi,yix_i,y_i

接下一行,一个数 tt

接下来 tt 行,每行的格式为下列两种格式之一:

  1. S x d,其中 S{U,L,D,R}S \in \{U,L,D,R\},代表第一种事件。
  2. Q x L R,代表第二种事件。

为了体现在线询问,每次你读进 xx' 后,真正的 x=xlastansx = x' \oplus lastans,其中 lastanslastans 是上一次答案对 109+710^9+7 取模后的结果,一开始 lastans=0lastans=0

输出格式

对于每一个 Q 事件,输出一个答案,对 109+710^9+7 取模。

5 3
1 2
2 2
3 2
2 1
2 3
7
Q 2 1 5
Q 6 3 4
D 1 1
Q 0 1 5
Q 7 1 5
L 5 1
Q 4 1 5
4
2
3
6
4

解密后的输入:

Q 2 1 5
Q 2 3 4
D 3 1
Q 2 1 5
Q 4 1 5
L 3 1
Q 2 1 5

提示

n105, m1018n \le 10^5,~m \le 10^{18}。保证军队在移动过程中不会超出边界。每个军队集结后会回到原来的驻地。

题目来源

By Dzy