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

问题描述

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秒。

解决方案四:
一道C语言的题目
【C语言】一道给力的题目
分享C语言中的unsigned类型的一道题目

时间: 2024-10-31 00:58:18

c语言一道检索的题目求助!的相关文章

数学-c语言题目求助~~~大家帮忙看一下这个代码有啥错误

问题描述 c语言题目求助~~~大家帮忙看一下这个代码有啥错误 **1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数. **它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字. 但是,它发散的很慢: 前1项和达到 1.0前4项和才超过 2.0前83项的和才超过 5.0 那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?** 请填写这个整数. 注意:只需要填写一个整数,不要填写任何多余的内容.比如说明文字.** #include<stdio

c语言编程-关于C语言字符串的简单题求助

问题描述 关于C语言字符串的简单题求助 进行对输入的字符串重新排列,要求字母在前,数字在后,并不改变字母和数字之间的字符排列顺序. 解决方案 #include void main() { char a[10] = {0}, b[10] = {0}, c[10]={0}; int n = 0, m = 0, k = 0,f = 0; printf("输入字符串:"); gets(a); for(int j = 0; j < 10; j++) { if((a[j] >= 'a'

c语言-C语言课程设计字符串题目匹配单词,求大神~~~~~~~~~~~~~~~~~

问题描述 C语言课程设计字符串题目匹配单词,求大神~~~~~~~~~~~~~~~~~ 详细题目如下:设有n个单词的字典表(1<=n<=100),计算某单词在字典表中的4种匹配情况(字典中的单词和待匹配的单词长度上限为255):1)i :该单词在字典表中的序号:2)Ei:在字典表中仅有一个字符不匹配的单词不匹配的单词序号:3)Fi:在字典表中多(或少)一个字符(其余字符匹配)的单词序号:4)N:其他情况.当查找时有多个单词符合条件,仅要求第1个单词的序号即可.1)输入文件,文件格式为:n(字典表

c++-请帮看一下一道C++的题目。还可另得100C(总计200C)

问题描述 请帮看一下一道C++的题目.还可另得100C(总计200C) 问题如下: 我们要创造一个游戏,这游戏是为了测量玩家在规定时间内能记得多少信息,以下是解析这游戏是如何玩的: 第一步:有两位玩家: 第二步:每个玩家开始都有十分: 第三步:游戏需要提示第一位玩家输入一段话.第二位玩家不允许看. 第四步:程序向第二位玩家展示第一位玩家输入的一段话,然后通过不断换行清除屏幕中的一段话.询问玩家是否准备好答题,如果还不行,就继续展示在屏幕上,这一次留在屏幕的时间会延长.每一次玩家需要再看一遍,玩家

vb-求VB解决一道数组的题目

问题描述 求VB解决一道数组的题目 50C 题目是:运行出现一组随机数组.数组内的个数是随机的,最大为6位数,最小为1位数.每一组内无重复数字.紧接着下一个画面出现一个随机数字.原料是0-9 解决方案 为什么用VB喔... 解决方案二: random随机数,用string类型存储对比..然后就是你这是什么问题,没头没脑的,要求什么都没? 解决方案三: 生成位数 1-6 之间 第二生成每一位随机数生成方式 第一个数生成 1-9 之间的 其它数据形成一个数组 第二个数 生成 0~8之间的 ,作为下标

c语言扫雷算法有问题求助

问题描述 c语言扫雷算法有问题求助 自己写了个控制台的扫雷 输入坐标然后显示地图 但是输入某些坐标的时候卡住不动了 不知道是陷入死循环还是什么问题 求大神解答 已考虑无雷区自动翻开的死循环 可能是双击时陷入死循环 但看不出是不是这个问题 不知道怎么修改代码 #include #include #include #include #define len 20 //边数 int mine[len+2][len+2] = {0}; //+2是为了在计算周围一圈雷数时不必分四周顶点边界区域,不越界 in

一道acm动态题目,谁帮忙看下。谢谢了

问题描述 一道acm动态题目,谁帮忙看下.谢谢了 排列 查看 提交 统计 提问 总时间限制: 5000ms 内存限制: 65536kB 描述 题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列. 任务描述: 给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3-n. 比如:n = 3,k

一道acm练习题目,发票统计的题目,怎么把整数弄成单精度的没想明白?问下

问题描述 一道acm练习题目,发票统计的题目,怎么把整数弄成单精度的没想明白?问下 发票统计 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个小型的报账系统,它有如下功能: (1)统计每个人所报发票的总钱数 (2)统计每类发票的总钱数 将此系统简化为如下:假设发票类别共有A.B.C三种;一共有三个人,ID分别为1.2.3. 输入 系统输入包含三行,每行第一个数为人员ID(整型,1或2或3),第二个数为发票总张数(张数不超过100),之后是多个发票类别(

java毕设-求基于java语言开发的毕业设计题目

问题描述 求基于java语言开发的毕业设计题目 最近要写毕业论文了 ,然而题目还没有,所以求各位大神帮帮忙 想个比较新颖.实现起来简单的基于java的毕业设计题目 由于c币很少 悬赏不了太多啊 大神们帮帮忙啊 谢谢了先