洛谷CF499B Lecture + 映射map
题目描述
你现在有一位新图论教授,你觉得他讲课讲的很好,但他说话实在是太快了,搞得你根本没有时间记笔记。所以呢,你有一个计划来跟上他讲课时的“脚步”,并记下重要的笔记。
你总共会两种语言: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相关推荐
- map集合——阅读理解(洛谷 P3879)
题目选自洛谷P3879 直接用map<string,vecotr<int> > 代替这题里的trie树,注意开map的时候后面两个> >之间要有一个空格. 用vec ...
- 遍历Map要选择好的遍历方式(洛谷P1097题题解,Java语言描述)
题目要求 P1097题目连接 分析 这题标签里有一个"高性能",瞬间令我心惊胆战,毕竟Java嘛. 我们应该会写排序,比如快排,但可以利用现成的数据结构啊,本来想的是TreeSet ...
- bfs:01迷宫(洛谷P1141)
洛谷传送门 解析 乍一看:bfs板子题 冰法师最棒了 然鹅 看了一眼数据范围 心中已有画面 <面 堂 发 黑> 怎么办嘞? 我们想到: 因为该题来与去的可逆性 我们搜一次后,这些点以后都不 ...
- 【c++算法刷题笔记】——洛谷2
1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...
- N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)
题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...
- 并查集——家谱(洛谷 P2814)
题目选自洛谷P2814 由于是字符串保存名字,使用数字对应数组来合并查找有一点麻烦,所以使用map将对应关系存起来即可. 因为map带有映射关系,好像不需要再写初始化和合并操作,用两个字符串变量,一个 ...
- [UVA156]反片语 Ananagrams 题解(映射:map 详解)
反片语 Ananagrams - 洛谷 Most crossword puzzle fans are used to anagrams - groups of words with the same ...
- CSP 2020 S 蒟蒻的游记 (洛谷同步)
我是傻逼,第一次考,太没有经验了 T1: 毒瘤模拟- 我 if + 计算函数 打+调了2小时 ... 样例WA了 心态炸了- T2. 我没学过如何计算并保存一个数的每一个二进制位- 但是,蒟蒻也是个S ...
- 洛谷 P3613 【深基15.例2】寄包柜
[题目链接] 洛谷 P3613 [深基15.例2]寄包柜 [题目考点] 1. STL map 2. STL pair pair<T1, T2> make_pair(T1 a, T2 b); ...
最新文章
- Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)
- c#WebBrowser进阶
- b区计算机考研招不满的大学,B区又一所院校招收大量调剂!一志愿不满!
- Android热修复原理,已整理成文档
- html移动端沉浸式状态栏,app沉浸式状态实现分享,解决状态栏遮挡顶部的问题...
- 翻译python语言命令_有道词典命令行快速翻译,Python编程的利器
- [Web Chart系列之五] 1. 实战draw2d 之总体介绍
- 华为否认鸿蒙为噱头;谷歌公布 6 大 iOS 漏洞;GitLab 又发安全补丁 | 极客头条...
- geexbox 编译
- 进制转换 pdf_浏览器中的二进制以及相关转换
- ubuntu16.04下怎么安装flash player
- 2021_0207_生活记录
- idea新建springboot项目
- Maven的安装与配置教程
- Python爬取QQ音乐并下载
- java8实现map遍历,map转list,list转map
- vant ,vue 图片上传压缩
- 简单的爬图片代码(python)
- 187、商城业务-检索服务-页面排序功能
- 小鸟云:浅谈5 种典型的云原生架构反模式
热门文章
- atlas mysql 分表,Atlas实现Mysql读写分离
- EJB教程_编程入门自学教程_菜鸟教程-免费教程分享
- 调试MPU6050遇到的问题(初始化失败)
- C++中测数组的长度
- percona-tool文档说明(5)- 复制类
- Mysql数据库基础知识(五)之:视图、变量、存储过程、函数、流程控制结构
- 海康iSecure Center 综合安防管理平台安装部署教程 - CentOS系统
- 如何求水平渐近线(例题讲解)
- 【2017-02-05】【抓包】鼠大侠鼠标连点器去广告
- leetcode-Database-577|员工奖金