一道简单的数据查找题目,求算法,求鄙视

yanxiangtianji 2013-04-05 04:14:55
有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

请问应该用什么算法比较好?
...全文
246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanxiangtianji 2013-05-09
  • 打赏
  • 举报
回复
引用 5 楼 derekrose 的回复:
这。。。 理解无能
假设有一个N行D列的二维表。 指定P-1个列的取值。 要求满足这个条件的数据有多少行。 对于这个数字再根据指定了的另外一个列的取值情况,划分开。 即做d次(d是第P列的取值的个数):给定P个列的取值,检查N行D列中满足这个条件的有多少行。
yanxiangtianji 2013-05-07
  • 打赏
  • 举报
回复
引用 4 楼 hugett 的回复:
第一个答案不是2 2么?还是我理解错了。。
我的错 写错了 的确是 2 2
buyong 2013-05-07
  • 打赏
  • 举报
回复
I do not understand the requirement. I do not think this is simple.
derekrose 2013-05-05
  • 打赏
  • 举报
回复
这。。。 理解无能
hugett 2013-05-05
  • 打赏
  • 举报
回复
第一个答案不是2 2么?还是我理解错了。。
yanxiangtianji 2013-05-05
  • 打赏
  • 举报
回复
没人看见 哎
yanxiangtianji 2013-04-23
  • 打赏
  • 举报
回复
什么情况 没有人看见吗
yanxiangtianji 2013-04-06
  • 打赏
  • 举报
回复
没有人看见吗

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧