CF499B Lecture 题解
Content
有一个教授用 \(\texttt{A}\) 语言讲课。你觉得他讲的太快了,所以决定使用 \(\texttt{A}\) 语言和 \(\texttt{B}\) 语言记笔记。
已知 \(\texttt{A}\) 语言和 \(\texttt{B}\) 语言中的 \(m\) 对单词的意思是互相对等的,因此,使用 \(\texttt{B}\) 语言可能会让你的笔记更加简洁。当然,如果 \(\texttt{A}\) 语言中的单词的长度和 \(\texttt{B}\) 语言中意思相等的单词的长度相等,甚至 \(\texttt{A}\) 语言中的单词长度还要短,那么你还是会首选用 \(\texttt{A}\) 语言记笔记。
现在给出教授的演讲(有 \(n\) 个单词),请你按照以上规则记好笔记。
数据范围:\(1\leqslant n,m\leqslant 3000\)。
Solution
我们为什么不使用 \(\texttt{map}\) 来解决这道题目呢?
由于可以肯定教授只用 \(\texttt{A}\) 语言来演讲,因此我们直接将 \(\texttt{A}\) 语言中的意思相等的单词用 \(\texttt{map}\) 映射到 \(\texttt{B}\) 语言中去,然后在每个单词对比是否会使记笔记的长度减少即可。
Code
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int n, m;
string a, b, sp[3007];
map<string, string> mm1;
int main() {
scanf("%d%d", &n, &m);
while(m--) {
cin >> a >> b;
mm1[a] = b;
}
for(int i = 1; i <= n; ++i) {
cin >> sp[i];
if(mm1[sp[i]].size() < sp[i].size()) sp[i] = mm1[sp[i]];
}
for(int i = 1; i <= n; ++i) cout << sp[i] << ' ';
}
CF499B Lecture 题解的更多相关文章
- [C2P3] Andrew Ng - Machine Learning
##Advice for Applying Machine Learning Applying machine learning in practice is not always straightf ...
- Lecture Sleep(前缀和)
Your friend Mishka and you attend a calculus lecture. Lecture lasts n minutes. Lecturer tells ai the ...
- Codeforces Round #287 (Div. 2) D. The Maths Lecture [数位dp]
传送门 D. The Maths Lecture time limit per test 1 second memory limit per test 256 megabytes input stan ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
随机推荐
- 虚拟机Centos7安装Socks5作为代理服务器
虚拟机Centos7安装Socks5作为代理服务器 1. 什么是代理服务器 代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到 ...
- Stream流的使用
创建流 创建流的方式很多,从jdk8起,很多类中添加了一些方法来创建相应的流,比如:BufferedReader类的lines()方法:Pattern类的splitAsStream方法.但是开发中使用 ...
- Qt Creator 源码学习笔记03,大型项目如何管理工程
阅读本文大概需要 6 分钟 一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高.如何更好的组织管理工程,是非常重要的 今天我们来学习下 Qt Creator 是如 ...
- c# Quartzs定时器的简单使用
使用背景: 首先想到倒计时,定时任务.大家想到的肯定就是定时器.那么定时器在web和winfrom程序中有着很大的作用.那在服务器端有没有像定时器一样的存在呢. 有了这些需求,我找到了第三方的组件 Q ...
- NOI 2008 志愿者招募
NOI 2008 志愿者招募 考虑用 $ p_i $ 表示第 $ i $ 天实际招收的人数,我们假设我们有三种志愿者,分别是 $ 1\to 2,1 \to 3 , 2\to 3 $ ,我们招手的人数分 ...
- MYSQL5.8----2
一定要按照这个顺序,where group by having order by limit 可以进行一次排序之后再一次拍寻 #存储的时候,能存数字就村数字
- python2 第二天
requests库 编码和解码 输入和输出,在Python中,为了更好的调试和输出,我们需要对字符串进⾏格式化的输出,⽐如我们定义了姓名和年龄,但是我 们需要输出完整的信息,那么就涉及到字符串格式化的 ...
- 学习java的第八天
一.今日收获 1.学习完全学习手册上2.3转义字符与2.4运算符两节 二.今日难题 1.没有什么难理解的问题 三.明日目标 1.哔哩哔哩教学视频 2.Java学习手册
- 巩固java第七天
巩固内容: HTML 属性 属性是 HTML 元素提供的附加信息. HTML 属性 HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比 ...
- acquaint
Interpersonal relationships are dynamic systems that change continuously during their existence. Lik ...