【1401】机器翻译
【问题描述】
小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
假设内存中有M个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。
假设一篇英语文章的长度为N个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。
【输入格式】:
输入文件共2行。每行中两个数之间用一个空格隔开。
第一行为两个正整数M和N,代表内存容量和文章的长度。
第二行为N个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。
【输出格式】:
共1行,包含一个整数,为软件需要查词典的次数。
【提示】
输入输出样例 1 说明:
整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况:
空:内存初始状态为空。
1. 1:查找单词1并调入内存。
2. 1 2:查找单词2并调入内存。
3. 1 2:在内存中找到单词1。
4. 1 2 5:查找单词5并调入内存。
5. 2 5 4:查找单词4并调入内存替代单词1。
6. 2 5 4:在内存中找到单词4。
7. 5 4 1:查找单词1并调入内存替代单词2。
共计查了5 次词典。
【输入样例1】:
3 7
1 2 1 5 4 4 1
【输出样例1】:
5
【输入样例2】:
2 10
8 824 11 78 11 78 11 78 8 264
【输出样例2】:
6
【参考程序】
#include <cstdio> #include <iostream> using namespace std; int n, m, x, cnt, tot; // cnt:存入内存的次数 int a[1001] = {0}; // 每个下标对应一个单词,数组里的值对应单词存入顺序 void js(); int main() { cnt = 0; cin >> m >> n; // m:内存容量 n:文章的长度 for (int i=1; i<=n; i++) { cin >> x; if (a[x]==0 && cnt<m) { // 需要查找并且内存未满 (需要查字典,并存入内存) cnt++; a[x] = cnt; } else { js(); // 需要查找,但内存已满 } } cout << cnt; return 0; } void js() { if (a[x]==0 && cnt>=m) { // 需要查找且内存已满 cnt++; tot = 0; for (int j=0; j<=1000; j++) { if (a[j] >= 1) { a[j] = a[j] - 1; // 把每个单词的读入顺序向前移一位 tot++; // tot:计数器,记录移动单词的数量 } if (tot == m) { // 每个单词都移过了就结束循环 break; } } a[x] = m; // 存入新单词 } } |
【1401】机器翻译相关推荐
- 信息学奥赛一本通超详细题解,动画图文题解
内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...
- 信息学奥赛一本通(1401:机器翻译)
1401:机器翻译 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 13114 通过数: 5963 [题目描述] 小晨的电脑上安装了一个机器翻译软件,他经常 ...
- 机器翻译注意力机制及其PyTorch实现
前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译 Effective Approaches to Attention-based Neural Machine Translat ...
- TVM优化GPU机器翻译
TVM优化GPU机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.最近,阿里巴巴集团正在为全球电子商务部署NMT服务. 将Transform ...
- TensorFlow+TVM优化NMT神经机器翻译
TensorFlow+TVM优化NMT神经机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.本文为全球电子商务部署NMT服务. 目前,将Tr ...
- EMNLP 2019 | 大规模利用单语数据提升神经机器翻译
BDTC大会官网:https://t.csdnimg.cn/q4TY 作者 | 吴郦军.夏应策 来源 | 微软研究院AI头条(ID:MSRAsia) 编者按:目前,目标语言端的无标注单语数据已被广泛应 ...
- 基于RNN的NLP机器翻译深度学习课程 | 附实战代码
作者 | 小宋是呢 来源 | CSDN博客 深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列 NLP 机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入 ...
- NLP机器翻译深度学习实战课程基础 | 深度应用
作者 | 小宋是呢 来源 | CSDN博客 0.前言 深度学习用的有一年多了,最近开始 NLP 自然处理方面的研发.刚好趁着这个机会写一系列 NLP 机器翻译深度学习实战课程. 本系列课程将从原理讲解 ...
- Transformer新型神经网络在机器翻译中的应用 | 公开课笔记
嘉宾 | 于恒 来源 | AI科技大本营在线公开课 编辑 | Jane 于恒:直播间的朋友大家好!欢迎大家来到本次AI科技大本营公开课,我是本次讲师于恒. 在讲课开始之前先简短的做个自我介绍,我是博士 ...
- 翻译们又要失业?Facebook最新无监督机器翻译成果,BLEU提升10个点!
作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 神经机器翻译(NMT)关注的是通过 AI 在不同人类语言之间进行翻译的过程.2015 年,蒙特利尔学习算法研究所的研究人员开 ...
最新文章
- 虚幻引擎C++编程游戏开发基础
- 《Adobe Fireworks CS5中文版经典教程》——导读
- 说说设计模式~组合模式(Composite)
- mysql 锁测试_mysql行级锁测试 - echowu007的个人空间 - OSCHINA - 中文开源技术交流社区...
- Centos源码安装Cmake
- mint-UI引用后样式不对
- 4计算准确率_孩子计算总出错?4个好方法帮助低年级学生提高计算准确率!
- 【LeetCode笔记】剑指 Offer 47. 礼物的最大价值(Java、动态规划)
- php $_post多个,使用PHP检查多个$ _ POST字词
- 深入浅出强化学习_皋兰县举办科级干部学习贯彻党的十九届五中全会精神培训班...
- C#利用NOPI处理Excel的代码
- service获取selinux权限_Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证...
- windows7怎么升级10_最新主板真的无法安装windows7吗?
- pycharm设置工程运行环境
- SAP FI 系列 (022) - 货币和汇率的配置
- YML解析框架SnakeYaml简介
- 读书笔记------《平凡的世界》
- Hanoi Tower Troubles Again! ZOJ - 1239
- MFC+OpenGL显示视频流图片
- centos7系统关机命令_centos关机命令