描述

小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的 中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的 词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
假设内存中有M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。
假设一篇英语文章的长度为N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

【数据范围】
对于10%的数据有M=1,N≤ 5。
对于100%的数据有0<M≤ 100,0<N ≤ 1000。

输入
共2 行。每行中两个数之间用一个空格隔开。
第一行为两个正整数M 和N,代表内存容量和文章的长度。
第二行为N 个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文
单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

输出
共1 行,包含一个整数,为软件需要查词典的次数。

输入样例 1

3 7
1 2 1 5 4 4 1
输出样例 1

5

根据题目要求翻译的容量是固定的那么,每次遇到新词就要加到容器中,满了就清除最早的,我们可以使用取余操作来实现清除最新的,我们可以使用数组存储,翻译容器和词组,并对翻译容器初始化,以保证它里面没有非负数,然后进行递归,每次都递归词组中的一个位置,这个位置在进入整个翻译容器比对如果无相同则替换,计数。

#include <iostream>using namespace std;
int cont,m,n;
int a[1005];
int b[1005];
int findit(int x,int sit)
{int i;if(x==n)return cont;for(i=0; i<m; i++){if(a[x]==b[i]){break;}}if(i==m){sit++;b[sit%m]=a[x];cont++;}x++;findit(x,sit);
}
int main()
{while(cin>>m>>n){cont=0;fill(b,b+m,-1);for(int i=0; i<n; i++)cin>>a[i];cout<<findit(0,0)<<endl;}return 0;
}

OJ 1478 机器翻译相关推荐

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

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

  2. TVM优化GPU机器翻译

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

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

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

  4. 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题

    问题 A: 割点与桥 时间限制: 1 Sec  内存限制: 5 MB 提交: 475  解决: 34 提交 状态 算法问答 题目描述 给出一个无向连通图,找到所有的割点和桥 输入 第一行:点的个数,如 ...

  5. 【ACM】杭电OJ 2037

    题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...

  6. 【ACM】杭电OJ 2020(排序)

    题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...

  7. 【ACM】杭电OJ 2018

    题目链接:杭电OJ 2018 从n>4开始,每一年的牛的数量=前一年的牛的数量+三年前的牛的数量 问:为什么是三年前? 答:假设三年前有一头小牛出生,出生的那一年即为第一年,到了第四年,即三年后 ...

  8. 【ACM】杭电OJ 1005

     题目链接:杭电OJ 1005 超时代码如下(而且开辟的数组空间大小不够): #include <stdio.h> int m[100000]; int f(int n,int a,int ...

  9. 【ACM】杭电OJ 1004

     题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...

  10. 【ACM】杭电OJ 2012。

    题目链接:杭电OJ 2012 思路很简单,但是有一种高效算法显示编译错误,不知道为什么 运行环境:VS2017 AC代码: #include <stdio.h> #include < ...

最新文章

  1. 新冠研究数据哪里找?科研工作者必看(附链接)
  2. grafana 画拓扑图 能不能_Grafana之ImageIt实现动态可感知网络拓扑(第十七篇)
  3. JavaSE(二十)——面向对象的概念及三个基本特征
  4. 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
  5. java后端工程师平时开发或多或少会用到Myeclipse,那么它有哪些快捷键呢
  6. 数据处理入门干货:MongoDB和pandas极简教程
  7. web重启tomcat_使用docker构建jdk镜像和web服务镜像
  8. [转载] java 内部类与闭包
  9. [转] 深入浅出oracle锁---原理篇
  10. 论文阅读笔记(八)——Ultra-thin MobileNet
  11. asp.net 微信小程序源码 微信分销源码 源文件完全开源 源码
  12. Linux下通过ssh上传下载文件
  13. Go语言开发实战课后编程题
  14. 酱爆如花四眼仔,周星驰金牌配角不止吴孟达,他们名字都没人知道
  15. 双十一,咪蒙广告位为何供不应求?
  16. 一个检查输入内容的 AppCompatEditText 。
  17. php ajax 域名查询,PHP+AJAX 实现域名查询系统
  18. 简单好用又免费的百度翻译mac桌面端
  19. 为什么我的电脑只能上qq不能打开网页
  20. 考研初试考java的学校,2021考研初试科目:这些学校改成统考408!

热门文章

  1. Ubuntu下的快捷键截图
  2. 踩坑系列《十一》完美解决阿里云vod视频点播无法播放音频和视频点播控制台里的媒资库里面的视频无法播放
  3. 通过淘宝司法拍卖购买房子,需要注意些什么?
  4. MyBatisPuls入门案例
  5. php工具apache启动失败,phpstudy中apache启动失败的原因是什么?
  6. 让你拥有超常记忆力的小习惯
  7. 2022-2028年中国安检设备行业市场全景调查及投资策略研究报告
  8. 陈晨-证券交易系统架构设计_挑战与实施经验分享
  9. 纪念 | 永远的凌晨四点钟
  10. seek()方法的使用