题目描述

你现在有一位新图论教授,你觉得他讲课讲的很好,但他说话实在是太快了,搞得你根本没有时间记笔记。所以呢,你有一个计划来跟上他讲课时的“脚步”,并记下重要的笔记。

你总共会两种语言:A 语言和 B 语言,教授用来讲课的是其中的 A 语言。A 语言和 B 语言有以下共同点:

  • 它们都由若干小写字母构成;
  • 每个单词里都不包括空格;
  • 它们的长度都不超过 10。

另外,可以保证同一种语言中任意两个单词都有不同的拼写,且 A 语言的每一个单词与 B 语言中的每一个单词一一对应。

你的做笔记方式如下:

  • 你必须写出写出教授给出的每一个单词;
  • 为保证写单词用时最短,你必须要选择两种语言中单词长度更短的一个;
  • 如果两个单词的长度一样,为保证讲课的原汁原味,你会选择第一种语言来做笔记。

我们会给你教授的演讲。而你呢,需要编一个程序来写出你的笔记。

输入格式

第一行包括两个整数,分别为教授的演讲里有多少个单词的 n,还有两种语言中共有多少词汇的 m(1≤n≤3000,1≤m≤3000)

接下来有 m 行,每行两个单词,分别为 ai​ 和 bi​(两种语言里的单词)

最后一样中有 n 个单词,代表教授的演讲。

输出格式

输出 n 个单词,代表按照题目中的规则你记下的笔记。

输入输出样例

输入 #1

4 3
codeforces codesecrof
contest round
letter message
codeforces contest letter contest

输出 #1

codeforces round letter round

输入 #2

5 3
joll wuqrd
euzf un
hbnyiyc rsoqqveh
hbnyiyc joll joll euzf joll

输出 #2

hbnyiyc joll joll un joll

此题可以用map映射

map是STL中的一个容器,使用时要先加上

#include <map>

map一般是这样定义的

map<int, int> m;

我们可以把map想象成一个一维数组,只是下标的类型和值是由你来定义、赋值的,同样的,下标对应的值也是由你来定义、赋值;如下图

map<    int     ,    int    > m;下标的类型    数值的类型

赋值操作一般是这样的(只要m和k的类型与定义中相符即可)

m[k] = s;

下面来看此题的解题思路:

先用map做一个表,表里存储了输入数据(输入中的2~m + 1行每行的两个字符串一一对应,前一个当下标,后一个当对应值)

最后查表输出即可

#include <iostream>
#include <map>
#include <set>
#include <string>
using namespace std;
map<string, string> m;
int N, M;
int main(){string s1, s2;cin >> N >> M;for(int i = 1; i <= M; i++){cin >> s1 >> s2;m[s1] = s2;}for(int i = 1; i <= N; i++){string k;cin >> k;if(k.length() <= m[k].length()){cout << k << " ";} else {cout << m[k] << " ";}}return 0;
}

洛谷CF499B Lecture + 映射map相关推荐

  1. map集合——阅读理解(洛谷 P3879)

    题目选自洛谷P3879 直接用map<string,vecotr<int> > 代替这题里的trie树,注意开map的时候后面两个> >之间要有一个空格. 用vec ...

  2. 遍历Map要选择好的遍历方式(洛谷P1097题题解,Java语言描述)

    题目要求 P1097题目连接 分析 这题标签里有一个"高性能",瞬间令我心惊胆战,毕竟Java嘛. 我们应该会写排序,比如快排,但可以利用现成的数据结构啊,本来想的是TreeSet ...

  3. bfs:01迷宫(洛谷P1141)

    洛谷传送门 解析 乍一看:bfs板子题 冰法师最棒了 然鹅 看了一眼数据范围 心中已有画面 <面 堂 发 黑> 怎么办嘞? 我们想到: 因为该题来与去的可逆性 我们搜一次后,这些点以后都不 ...

  4. 【c++算法刷题笔记】——洛谷2

    1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...

  5. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  6. 并查集——家谱(洛谷 P2814)

    题目选自洛谷P2814 由于是字符串保存名字,使用数字对应数组来合并查找有一点麻烦,所以使用map将对应关系存起来即可. 因为map带有映射关系,好像不需要再写初始化和合并操作,用两个字符串变量,一个 ...

  7. [UVA156]反片语 Ananagrams 题解(映射:map 详解)

    反片语 Ananagrams - 洛谷 Most crossword puzzle fans are used to anagrams - groups of words with the same ...

  8. CSP 2020 S 蒟蒻的游记 (洛谷同步)

    我是傻逼,第一次考,太没有经验了 T1: 毒瘤模拟- 我 if + 计算函数 打+调了2小时 ... 样例WA了 心态炸了- T2. 我没学过如何计算并保存一个数的每一个二进制位- 但是,蒟蒻也是个S ...

  9. 洛谷 P3613 【深基15.例2】寄包柜

    [题目链接] 洛谷 P3613 [深基15.例2]寄包柜 [题目考点] 1. STL map 2. STL pair pair<T1, T2> make_pair(T1 a, T2 b); ...

最新文章

  1. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)
  2. c#WebBrowser进阶
  3. b区计算机考研招不满的大学,B区又一所院校招收大量调剂!一志愿不满!
  4. Android热修复原理,已整理成文档
  5. html移动端沉浸式状态栏,app沉浸式状态实现分享,解决状态栏遮挡顶部的问题...
  6. 翻译python语言命令_有道词典命令行快速翻译,Python编程的利器
  7. [Web Chart系列之五] 1. 实战draw2d 之总体介绍
  8. 华为否认鸿蒙为噱头;谷歌公布 6 大 iOS 漏洞;GitLab 又发安全补丁 | 极客头条...
  9. geexbox 编译
  10. 进制转换 pdf_浏览器中的二进制以及相关转换
  11. ubuntu16.04下怎么安装flash player
  12. 2021_0207_生活记录
  13. idea新建springboot项目
  14. Maven的安装与配置教程
  15. Python爬取QQ音乐并下载
  16. java8实现map遍历,map转list,list转map
  17. vant ,vue 图片上传压缩
  18. 简单的爬图片代码(python)
  19. 187、商城业务-检索服务-页面排序功能
  20. 小鸟云:浅谈5 种典型的云原生架构反模式

热门文章

  1. atlas mysql 分表,Atlas实现Mysql读写分离
  2. EJB教程_编程入门自学教程_菜鸟教程-免费教程分享
  3. 调试MPU6050遇到的问题(初始化失败)
  4. C++中测数组的长度
  5. percona-tool文档说明(5)- 复制类
  6. Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构
  7. 海康iSecure Center 综合安防管理平台安装部署教程 - CentOS系统
  8. 如何求水平渐近线(例题讲解)
  9. 【2017-02-05】【抓包】鼠大侠鼠标连点器去广告
  10. leetcode-Database-577|员工奖金