《数据结构》7查找
查找实践能力
鹏不是这个朋
本 sdut 硕 szu
展开
-
L - 土拨鼠掷鼬鼠(二分查找)
Description神奇的土拨鼠今天又很乖的皮的玩起了鼬鼠,今天依旧是掷鼬鼠。土拨鼠忘记了自己家周围有着 nnn 圈的着火带。已知距离土拨鼠 r[i] (1⩽i⩽n)的位置处有一圈着火地带。现在土拨鼠有 m 次投掷,告诉你它投掷的距离 L[i] (1⩽i⩽m),问你当前投掷的鼬鼠会不会解脱 gg 掉,也就是落在着火地带上(当前仅当 L[i] == )(1⩽j⩽n) 时,我们认为鼬鼠落在了着火带上)。Input第一行是以空格分隔的两个整数 n, m。n 表示着火带的圈数,m 表示投掷的次数。接下来一原创 2020-12-06 12:15:27 · 355 阅读 · 0 评论 -
K - TimesIsMoney(查询)
Description给你一个序列,有N个整数(int以内),判断一个数在这个序列中出现几次。Input多组输入,输入到文件结尾首先输入一个n,然后输入n个整数。在输入一个m,代表查询的个数 ,然后输入m个数(int以内)。n,m <= 100000;Output对应每一次查询,输出这个数在序列中出现几次。SampleInput51 2 2 3 532 4 5Output201#include<bits/stdc++.h>using names原创 2020-12-06 11:53:53 · 293 阅读 · 0 评论 -
F - 数据结构实验之查找六:顺序查找
Description在一个给定的无序序列里,查找与给定关键字相同的元素,若存在则输出找到的元素在序列中的位序和需要进行的比较次数,不存在则输出"No",序列位序从1到n,要求查找从最后一个元素开始,序列中无重复元素。Input连续多组数据输入,每组输入数据第一行首先输入两个整数 n (n <= 10^6) 和 k (1 <= k <= 10^7),n是数组长度,k是待查找的关键字,然后连续输入n个整数 ai (1 <= ai <= 10^7),数据间以空格间隔。Out原创 2020-12-06 11:36:04 · 237 阅读 · 0 评论 -
I - 查找练习 hash——出现过的数字(水题A的)
Description有一个数据字典,里面存有n个数字(n<=100000),小明现在接到一个任务,这项任务看起来非常简单——给定m个数字,分别查询这m个数字是否出现在字典之中;但是考虑到数据量的问题,小明找到了善于编程的你,希望你可以帮他解决这个问题。Input输入数据只有一组!第一行包含两个整数n m,分别代表字典中数字的个数和要查询的数字的个数。接着n行代表字典中的n个数字。最后m表示要查询的数字。Output如果某个数字存在,则输出YES,否则输出NOSampleInput原创 2020-12-06 11:22:30 · 174 阅读 · 0 评论 -
J - 数据结构实验:哈希表
Description在n个数中,找出出现次数最多那个数字,并且输出出现的次数。如果有多个结果,输出数字最小的那一个。Input单组数据,第一行数字n(1<=n<=100000)。接下来有n个数字,每个数字不超过100000000Output出现次数最多的数字和次数。SampleInput31 1 2Output1 2Hint#include<bits/stdc++.h>using namespace std;const int N = 1e5原创 2020-12-06 10:19:05 · 264 阅读 · 0 评论 -
G - 数据结构实验之查找七:线性之哈希表
Description根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。Input连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1500)和p(p >= N的最小素数),N是关键字总数,p是hash表长度,第2行给出N个正整数关键字,数字间以空格间隔。Output输出每个关键字在hash表中的位置,以空格间隔。注意最后一个数字后面不要有空原创 2020-12-06 09:39:43 · 141 阅读 · 0 评论 -
E数据结构实验之查找五:平方之哈希表
Description给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1Input输入包含多组测试数据,到 EOF 结束。每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数),N是要插入到哈希表的元素个数,P是哈希表表长;第2行给出N个无重复元素的正整数,数据之间用空格间隔。Output按输入数原创 2020-12-06 09:21:33 · 113 阅读 · 0 评论 -
C - 数据结构实验之查找三:树的种类统计(哈希树)
Description随着卫星成像技术的应用,自然资源研究机构可以识别每一个棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。Input输入一组测试数据。数据的第1行给出一个正整数N (n <= 100000),N表示树的数量;随后N行,每行给出卫星观测到的一棵树的种类名称,树的名称是一个不超过20个字符的字符串,字符串由英文字母和空格组成,不区分大小写。Output按字典序输出各种树的种类名称和它占的百分比,中间以空格间隔,小数点后保留两位小数。Sample原创 2020-12-04 20:45:42 · 175 阅读 · 0 评论 -
B - 数据结构实验之查找二:平衡二叉树
Description根据给定的输入序列建立一棵平衡二叉树,求出建立的平衡二叉树的树根。Input输入一组测试数据。数据的第1行给出一个正整数N(n <= 20),N表示输入序列的元素个数;第2行给出N个正整数,按数据给定顺序建立平衡二叉树。Output输出平衡二叉树的树根。SampleInput588 70 61 96 120Output70Hint 平衡二叉树详解#include<bits/stdc++.h>using namespace std;原创 2020-12-04 19:59:01 · 186 阅读 · 0 评论 -
二分练习
Description给你一个序列,然后给你m个元素,让你从序列中找出与每个元素最接近的数字输出来,如果有两个就输出两个。Input多组输入,第一行给你两个数n(0 < n < 10000000),m(0 < m < n),接下来是数列的n个数,然后再输入m个元素,让你找出最接近每个元素的值。如果有两个,按从小到大输出。Output这m个数分别输出最接近每个元素的值,组与组之间输出一个空行。SampleInput8 41 2 3 4 5 6 8 114927原创 2020-12-02 10:20:00 · 133 阅读 · 0 评论 -
数据结构实验之查找四:二分查找(递归实现和while循环实现)
Description在一个给定的无重复元素的递增序列里,查找与给定关键字相同的元素,若存在则输出找到的位置,不存在输出-1。Input一组输入数据,输入数据第一行首先输入两个正整数n ( n < = 10^6 )和m ( m < = 10^4 ),n是数组中数据元素个数,随后连续输入n个正整数,输入的数据保证数列递增。随后m行输入m个待查找的关键字keyOutput若在给定的序列中能够找到与关键字key相等的元素,则输出位序(序号从0开始),否则输出-1。SampleInput原创 2020-12-02 09:28:12 · 285 阅读 · 0 评论 -
A - 数据结构实验之查找一:二叉排序树
Description对应给定的一个序列可以唯一确定一棵二叉排序树。然而,一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树,都得到一样的结果。你的任务书对于输入的各种序列,判断它们是否能生成一样的二叉排序树。Input输入包含若干组测试数据。每组数据的第1行给出两个正整数N (n < = 10)和L,分别是输入序列的元素个数和需要比较的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列生成一颗二叉排序树。随后L行,每原创 2020-12-02 08:55:19 · 430 阅读 · 0 评论