c语言一道检索的题目求助!

直接检索肯定会超时了,但我实在不知道什么算法能解决这个问题,求助各位大神!图片说明图片说明

用字典树,遍历一遍,将数据添加到字典树,然后查询。内存开销8000字节以内,时间开销N+LogN

如果不算数据输入的时间,2秒之内完成是没有任何问题的,即使是m=n=1000000的情况,估计0.5秒就可以完成,基本思路如下:
1.使用一个int(4字节)的低三位来存储一个三元组;使用两个int数组分别存储n个三元组和m个三元组,内存不超过8M
2.对n个int进行排序,即使n=1000000,对于目前的cpu来说,不会超过0.2秒;
3.对于每个m,使用二分法在n中查抄,时间不会超过0.3秒
如果不算数据的导入,时间不会超过0.5秒,由于不清楚你的原始数据是存在文件中的,还是存在数据库中的,不过不管是文件还是数据库,200万的数据导入都不会超过0.5秒。

如果不算数据输入的时间,2秒之内完成是没有任何问题的,即使是m=n=1000000的情况,估计0.5秒就可以完成,基本思路如下:
1.使用一个int(4字节)的低三位来存储一个三元组;使用两个int数组分别存储n个三元组和m个三元组,内存不超过8M
2.对n个int进行排序,即使n=1000000,对于目前的cpu来说,不会超过0.2秒;
3.对于每个m,使用二分法在n中查抄,时间不会超过0.3秒
如果不算数据的导入,时间不会超过0.5秒,由于不清楚你的原始数据是存在文件中的,还是存在数据库中的,不过不管是文件还是数据库,200万的数据导入都不会超过0.5秒。