目录

查找学生信息

动态查找问题

查找学生信息

查找1

查找 - 北邮

查找第K小数


查找学生信息

  •  题目描述

输入 N 个学生的信息,然后进行查询。

  • 输入描述

输入的第一行为 N,即学生的个数(N<=1000) 接下来的 N 行包括 N 个学生的信息,信息格式如下:

01 李江 男 21

02 刘唐 男 23

03 张军 男 19

04 王娜 女 19

然后输入一个 M(M<=10000),接下来会有 M 行,代表 M 次查询,每行输入一个学号,格式如下: 02

03

01

04

  • 输出描述:

输出 M 行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No Answer!”

  • 输入样例#:

01 李江 男 21

02 刘唐 男 23

03 张军 男 19

04 王娜 女 19

02

03

01

04

  • 输出样例#:

02 刘唐 男 23

03 张军 男 19

01 李江 男 21

04 王娜 女 19

03 张军 男 19

使用 map 来解决这类问题 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll; struct node{string num;string name;string sex;int age;};int main(){int n,q;map<string ,node> M;//定义一个map映射,索引num(string类型)->结构体while(scanf("%d",&n) != EOF){for(int i = 0;i<n;i++){node tmp;cin>>tmp.num>>tmp.name>>tmp.sex>>tmp.age;M[tmp.num ] = tmp;//将学号指向对应的结构体 }scanf("%d", &q);for(int i = 0;i<q;i++){string num;cin>>num;if((M.find(num))!=M.end())cout<<M[num].num<<" "<<M[num].name<<" "<<M[num].sex<<" "<<M[num].age<<endl;elsecout<<"No Answer!"<<endl;} }return 0;
}

动态查找问题

题目描述

有n个整数的集合,想让你从中找出x是否存在。

输入描述:

第一行输入一个正整数n(n < 100000)
第二行输入n个正整数,用空格隔开。
第三行输入一个正整数q(q<100000),表示查询次数。
接下来输入q行,每行一个正整数x,查询x是否存在。

输出描述:

如果x存在,请输出find,如果不存在,请输出no,并将x加入到集合中。

输入样例#:

5
1 2 3 4 5
3
6
6
3

输出样例#:

no
find
find
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; int main(){int n,q,x;map<int,int>M;//数字 —>出现次数 while(cin>>n){//输入正整数n for(int i = 0;i<n;i++){cin>>x;//输入n个正整数 M[x]++;}cin>>q;//输入查询次数q for(int i = 0;i<q;i++){cin>>x;if (M[x] ==0){///如果 x的次数为0 cout<<"no\n"<<endl;M[x]++;;//将 x 加入到集合中}else cout<<"find\n"<<endl;}}return 0;
}

查找学生信息

题目描述

“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。     首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。

输入描述:

多组测试数据。
每个案例第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)

输出描述:

每个案例包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^)

输入样例#:

4 5
2
3
2
1

输出样例#:

1
BeiJu
1
BeiJu
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; int main(){int n,m;while(cin>>n>>m){map<int,int> M;//最喜欢的图书编号->图书出现次数int a[n];//读者最喜欢的图书 for(int i = 0;i<n;i++){cin>>a[i];//输入读者i阅读的书 M[a[i]]++;}// 阅读的书相同的时候,图书+1 for(int i = 0;i<n;i++){if(M[a[i]]>=2) cout<<(M[a[i]] - 1)<<endl;//除去自身阅读的一本以外 else cout<<"Beiju"<<endl;}}return 0;
}

查找1

题目描述

输入数组长度 n 
输入数组      a[1...n] 
输入查找个数m 
输入查找数字b[1...m] 
输出 YES or NO  查找有则YES 否则NO 。

输入描述:

输入有多组数据。
每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。

输出描述:

如果在n个数组中输出YES否则输出NO。

输入样例#:

6
3 2 5 4 7 8
2
3 6

输出样例#:

YES
NO
#include <bits/stdc++.h>
using namespace std;
typedef long long ll; int main(){int n,m,x;int a[n];map<int,int>M;//map映射 cin>>n;//输入n for(int i = 0;i<n;i++){cin>>a[i];//输入n个整数 M[a[i]]++;//数i出现的次数 }cin>>m;//输入查找的数字个数m while(m--){cin>>x; //输入要查找的m个数字 if(M.find(x)!= M.end()) //用find这个函数,去找M这个映射中的x,如果映射中的x存在,就不会返回end()。cout<<"YES"<<endl;elsecout<<"No"<<endl;}}

查找 - 北邮

题目描述

读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令,总共有2中命令:1、翻转  从下标为i的字符开始到i+len-1之间的字符串倒序;2、替换  命中如果第一位为1,用命令的第四位开始到最后的字符串替换原读入的字符串下标 i 到 i+len-1的字符串。每次执行一条命令后新的字符串代替旧的字符串(即下一条命令在作用在得到的新字符串上)。     命令格式:第一位0代表翻转,1代表替换;第二位代表待操作的字符串的起始下标int i;第三位表示需要操作的字符串长度int len。

输入输出格式

输入有多组数据。
每组输入一个字符串(不大于100)然后输入n,再输入n条指令(指令一定有效)。

输出描述:

根据指令对字符串操作后输出结果。

输入样例

bac
2
003
112as

输出样例

cab
cas
#include <bits/stdc++.h>
using namespace std;int main()
{string s;int n;cin>>s>>n;for(int i=0;i<n;i++){   string cmd;//命令 cin>>cmd;int Begin = cmd[1] - '0';//命令第二位代表起始下标 int len = cmd[2] - '0';//命令第三位代表字符串长度 if(cmd[0] == '0'){//翻转 reverse(s.begin()+Begin,s.begin()+Begin+len);}else{//替换 //从命令字符串cmd下标为3处获得长度为 cmd.size()-3的字符串 string purpose = cmd.substr(3,cmd.size()-3);s.replace(Begin,Begin+len-1,purpose);}cout<<s<<endl;}return 0;
}

查找

查找第K小数

题目描述

查找一个数组的第K小的数,注意同样大小算一样大。 如  2 1 3 4 5 2 第三小数为3。

输入描述:

输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。

输出描述:

输出第k小的整数。

输入样例

6
2 1 3 5 2 2
3

输出样例

3
#include <bits/stdc++.h>
using namespace std;int main()
{int n,a[n],k;while(cin>>n){for(int i;i<n;i++)cin>>a[i];set<int> s;for(int i = 0;i<n;i++)s.insert(a[i]);cin>>k;auto p = s.begin();while(--k) p++;cout<<*p;}return 0;
}

【c/c++编程】查找类问题相关推荐

  1. C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

    面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...

  2. 海淀区中小学生知识技能计算机竞赛,海淀区第三届“智慧杯”中小学生计算机程序设计大赛-编程思维类...

    海淀区第三届"智慧杯"中小学生计算机程序设计大赛 主办单位:北京市海淀区教育委员会 承办单位:北京市海淀区教育科学研究院 协办单位:网易集团 比赛项目分为三类:创意编程类,报名时间 ...

  3. linux 压缩 日期,Linux 时间日期类、搜索查找类、 压缩和解压类指令

    l 时间日期类 date指令-显示当前日期 基本语法 1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) ...

  4. Linux的super super super easy教程 | sed 以及查找类命令

    Linux文本处理3剑客: grep:文本过滤 sed:文本替换 如 sed -I 's/字符1/字符2/' 文件名  表示把文件中字符串1全部改成字符串2 awk:文本截取(截取第几列 如截取第2列 ...

  5. Python面向对象编程:类继承和其衍生术语

    Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...

  6. eclipse 快捷键大全,eclipse查找类,文件,添加注释

     eclipse 快捷键大全,eclipse查找类,文件,添加注释 /* ---------------------------------------自理解------------------- ...

  7. eclipse快捷键 包括查找类、方法、变量

    [Ct rl+T] 搜索当前接口的实现类 1. [ALT +/]     此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下 ...

  8. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind

    这是一个精练的蓝牙设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxBthRemoteDeviceFind的使用如下: ...

  9. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  10. 『电子书』分享一波码农必备编程开发类书籍[转]

    分享一些书籍 看到书籍很多,感觉很不错,就收藏下来了,是百度盘的连接,失效的可以评论一下以此更新一下连接. 书籍清单 Python编程快速上手 细说PHP(第2版) Python核心编程(第3版) L ...

最新文章

  1. 关于Fragment、Tabhost和FragmentPagerAdapter来实现导航栏的效果
  2. centos7 和centos 6的一些区别
  3. Windows Vista for Developers——第二部分:深入分析任务对话框
  4. 【动态规划】P4170 :涂色(区间dp)
  5. 使用Spring Session实现Spring Boot水平扩展
  6. linux下输入法安装设置及中文字体安装
  7. sdX和hdX含义及其他安装Linux OS的总结
  8. Eviews3种面板模型的选择-F检验操作详情
  9. 可道云、NextCloud和Seafile使用体验比较哪个好用
  10. Linux的PS1美化
  11. linux下安装飞信机器人教程
  12. 查看进程是否是由于linux OOM killer机制杀死的方法
  13. 【NAS备份】摆脱丢数据的噩梦,群晖备份硬核实战教程分享
  14. 文章发布后的阅读量只有个位数该怎么办?
  15. 01-线性回归sklearn实现
  16. 页面自动获取导入excel内容
  17. 微信小程序实现手写签名(极简横版)
  18. 电脑高手140招(收藏起来慢慢琢磨)
  19. 请描述你对测试的了解, 内容可以涉及测试流程, 测试类型, 测试方法, 测试工具等。
  20. HTML 用过渡跟动画制作一个简易的旋转魔方

热门文章

  1. oracle form set_block_property,ORACLEERP开发基础之OracleForms基础(二)
  2. 腾讯官方披露,TDSQL十年自主可控之路(附PDF)
  3. 数据可视化笔记3 数据可视化基础(几何标记、视觉通道)
  4. 2021/4/24团队设计天梯赛L1题目集及题解
  5. BI PUBLISHER RTF模板制作PIVOT表和重分组
  6. otg android 键盘,使用USB OTG将手机、平板连上键盘、U盘
  7. 以下是两段c语言代码函数arith,计算机组成习题答案(清华大学).docx
  8. 机器人瓦力 配乐_机器人瓦力中的插曲是什么?
  9. 使用在Photoshop上的30个纺织物纹理Ps笔刷
  10. [转载] 蒲慕明写给学生的信