#P5629. 【AFOI-19】区间与除法

    ID: 4544 Type: RemoteJudge 2000~3000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>线段树st表字典树,Trie

【AFOI-19】区间与除法

题目背景

SY 好不容易才解出QM给她的数学题,在恰午饭的时候,QM 向她的脑洞里塞了个幻想的泡泡……SY 戳开一看,又是长长的一串数字!

SY 实在是不想思考了,她决定用小学的除法消灭她脑洞里的数字.

题目描述

定义 opop 操作意义为将当前数除以 dd 并向下取整.

SY 现在有 mm 个“原数”,若一个数经过若干次 opop 操作(包括 00 次)后能变为这个“原数”,那么这个数是可以被这个“原数”所消灭的。注意,“原数”是不会被消耗的.

现在 SY 想问你,对于一个区间 [l,r][l,r],在消灭最多个数的前提下最少需要多少个“原数”?

输入格式

第一行 44 个数,分别是 n,m,d,qn,m,d,q,分别表示数列 {a}\{a\} 元素个数,SY 拥有的 “原数” 个数,opop 操作参数,询问个数。

第二行为 {a}\{a\} 数列,即需要被消灭的数列。

第三行为 mm 个“原数”。

接下来 qq 行,每行两个数 llrr,表示询问区间为 [l,r][l,r]

输出格式

按照询问顺序,每一行输出一个整数表示答案.

2 3 3 3
0 20
6 6 6
1 1
2 2
1 2

0
1
1

6 3 3 3
6 5 10 15 19 7
2 5 10
1 6
1 4
4 6

3
3
2

提示

样例解释:

#样例12020 经过一次 opop 操作(除以 33 向下取整)可以变成 66,而 00 不能经过若干次 opop 操作变成 66

所以区间 [1,1][1,1] 最多消灭 00 个数,消灭最多数前提下最少需要 00 个 "原数",区间 [1,2],[2,2][1,2],[2,2] 最多消灭 11 个数,消灭最多数前提下最少需要 11 个 "原数" 。

#样例222 能消灭 {6,19,7}\{6,19,7\}55 能消灭 {5,15}\{5,15\}1010 能消灭 {10}\{10\} , 所以区间 [1,6],[1,4][1,6],[1,4] 最少能用所有 "原数" 全部消灭,区间 [4,6][4,6] 能用 2,52,5 全部消灭。

数据范围:

对于 30%30\% 的数据:n100,m10,d=2,q10n\le100,m\leq10, d=2, q\le 10

对于 100%100\% 的数据:$n\le5\times 10^{5},m\leq60,2\leq d\leq10,q\le10^{6},0\le a_i,b_i\le 2^{63}$

特殊性质:数据经过构造。