一道简单的数据查找题目,求算法,求鄙视
有N个D维的数据,每一维的取值范围di已知(di>=2),用连续的非负整数表示。
数据范围:
N在100万左右,D<=50,个别di<128,大部分di<10。
对于给定数据集提出多个查询请求:
给出任意P个维度(0<P<=D),给定其中前P-1个维度的取值,要求输出第P维取各个值时数据集中满足这个P个约束条件的记录的数量。
例如:
N=6 D=4
d0=3 d1=2 d2=2 d3=4
data:
0 1 1 3
1 0 0 2
0 1 0 1
0 1 0 1
0 1 1 2
2 0 0 2
2 1 1 0
2 1 1 0
查询为:
1:给定维度0 2(从0开始编号),前P-1维(第1维)给定值为:0,求第2维取各个值时满足条件数据的数量
答案应为:3 1
2:给定维度1 3 2(从0开始编号),前P-1维(第1和3维)给定值为:1 2,求第2维取各个值时满足条件数据的数量
答案应为:0 1
3:给定维度3 2 0(从0开始编号),前P-1维(第3和2维)给定值为:2 0,求第0维取各个值时满足条件数据的数量
答案应为:0 1 1
请问应该用什么算法比较好?