如何用一个约束解决spoj Dquery

时间:2017-06-06 08:53:21

标签: c++ arrays algorithm sorting distinct-values

我已经解决了这个问题 DQUERYN*Sqrt(N)的时间复杂度中使用MO算法的问题。
但是,现在我想在每个查询上再增加一个约束,也就是说,现在每个查询都包含四个整数i,j,x,y为:

(1 ≤ i ≤ j ≤ n)
(1 ≤ x ≤ y ≤ 10^6)

对于每个d查询(i,j),您必须返回子序列ai,ai + 1,...,aj中大于或等于x且更小的不同元素的数量或等于y
例如: 如果n=5数组元素为

1 1 2 1 3

然后,对于查询(i,j,x,y):

1 5 2 3
答案将是:

2

因为,在i=1j=5的范围内,存在三个不同的元素{1,2,3},但只有两个元素{2,3}出现在范围x=2到{{ 1}}。所以anwer是y=3。 我正在获得(Q * Sqrt(N) X) 的时间复杂度的解决方案,请帮助如何用有效的时间复杂度来解决这个问题/ strong>小于(Q Sqrt(N)* X)

0 个答案:

没有答案