【问题描述】

小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。

假设内存中有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】机器翻译相关推荐

  1. 信息学奥赛一本通超详细题解,动画图文题解

    内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...

  2. 信息学奥赛一本通(1401:机器翻译)

    1401:机器翻译 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 13114     通过数: 5963 [题目描述] 小晨的电脑上安装了一个机器翻译软件,他经常 ...

  3. 机器翻译注意力机制及其PyTorch实现

    前面阐述注意力理论知识,后面简单描述PyTorch利用注意力实现机器翻译 Effective Approaches to Attention-based Neural Machine Translat ...

  4. TVM优化GPU机器翻译

    TVM优化GPU机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.最近,阿里巴巴集团正在为全球电子商务部署NMT服务. 将Transform ...

  5. TensorFlow+TVM优化NMT神经机器翻译

    TensorFlow+TVM优化NMT神经机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.本文为全球电子商务部署NMT服务. 目前,将Tr ...

  6. EMNLP 2019 | 大规模利用单语数据提升神经机器翻译

    BDTC大会官网:https://t.csdnimg.cn/q4TY 作者 | 吴郦军.夏应策 来源 | 微软研究院AI头条(ID:MSRAsia) 编者按:目前,目标语言端的无标注单语数据已被广泛应 ...

  7. 基于RNN的NLP机器翻译深度学习课程 | 附实战代码

    作者 | 小宋是呢 来源 | CSDN博客 深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列 NLP 机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入 ...

  8. NLP机器翻译深度学习实战课程基础 | 深度应用

    作者 | 小宋是呢 来源 | CSDN博客 0.前言 深度学习用的有一年多了,最近开始 NLP 自然处理方面的研发.刚好趁着这个机会写一系列 NLP 机器翻译深度学习实战课程. 本系列课程将从原理讲解 ...

  9. Transformer新型神经网络在机器翻译中的应用 | 公开课笔记

    嘉宾 | 于恒 来源 | AI科技大本营在线公开课 编辑 | Jane 于恒:直播间的朋友大家好!欢迎大家来到本次AI科技大本营公开课,我是本次讲师于恒. 在讲课开始之前先简短的做个自我介绍,我是博士 ...

  10. 翻译们又要失业?Facebook最新无监督机器翻译成果,BLEU提升10个点!

    作者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 神经机器翻译(NMT)关注的是通过 AI 在不同人类语言之间进行翻译的过程.2015 年,蒙特利尔学习算法研究所的研究人员开 ...

最新文章

  1. 虚幻引擎C++编程游戏开发基础
  2. 《Adobe Fireworks CS5中文版经典教程》——导读
  3. 说说设计模式~组合模式(Composite)
  4. mysql 锁测试_mysql行级锁测试 - echowu007的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. Centos源码安装Cmake
  6. mint-UI引用后样式不对
  7. 4计算准确率_孩子计算总出错?4个好方法帮助低年级学生提高计算准确率!
  8. 【LeetCode笔记】剑指 Offer 47. 礼物的最大价值(Java、动态规划)
  9. php $_post多个,使用PHP检查多个$ _ POST字词
  10. 深入浅出强化学习_皋兰县举办科级干部学习贯彻党的十九届五中全会精神培训班...
  11. C#利用NOPI处理Excel的代码
  12. service获取selinux权限_Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证...
  13. windows7怎么升级10_最新主板真的无法安装windows7吗?
  14. pycharm设置工程运行环境
  15. SAP FI 系列 (022) - 货币和汇率的配置
  16. YML解析框架SnakeYaml简介
  17. 读书笔记------《平凡的世界》
  18. Hanoi Tower Troubles Again! ZOJ - 1239
  19. MFC+OpenGL显示视频流图片
  20. centos7系统关机命令_centos关机命令

热门文章

  1. 云服务器上硬盘是虚拟的吗,虚拟硬盘映射在主机上使用
  2. 解决局域网文件传输慢的问题
  3. python-类(class)是什么?怎么用?
  4. 使用Dragonfly上传Rails图片
  5. linux shell 脚本手动执行没问题,但在任务计划中执行有问题
  6. 深入剖析Windows补丁
  7. 喇叭POP爆破音产生的原因与解决办法
  8. 你见过凌晨四点的北京吗?
  9. MySQL ORDER BY 1 DESC的用法
  10. c# 中通快递对接_中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程...