OJ 1478 机器翻译
描述
小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的 中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的 词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
假设内存中有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 机器翻译相关推荐
- 机器翻译注意力机制及其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 ...
- 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
问题 A: 割点与桥 时间限制: 1 Sec 内存限制: 5 MB 提交: 475 解决: 34 提交 状态 算法问答 题目描述 给出一个无向连通图,找到所有的割点和桥 输入 第一行:点的个数,如 ...
- 【ACM】杭电OJ 2037
题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...
- 【ACM】杭电OJ 2020(排序)
题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...
- 【ACM】杭电OJ 2018
题目链接:杭电OJ 2018 从n>4开始,每一年的牛的数量=前一年的牛的数量+三年前的牛的数量 问:为什么是三年前? 答:假设三年前有一头小牛出生,出生的那一年即为第一年,到了第四年,即三年后 ...
- 【ACM】杭电OJ 1005
题目链接:杭电OJ 1005 超时代码如下(而且开辟的数组空间大小不够): #include <stdio.h> int m[100000]; int f(int n,int a,int ...
- 【ACM】杭电OJ 1004
题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...
- 【ACM】杭电OJ 2012。
题目链接:杭电OJ 2012 思路很简单,但是有一种高效算法显示编译错误,不知道为什么 运行环境:VS2017 AC代码: #include <stdio.h> #include < ...
最新文章
- 新冠研究数据哪里找?科研工作者必看(附链接)
- grafana 画拓扑图 能不能_Grafana之ImageIt实现动态可感知网络拓扑(第十七篇)
- JavaSE(二十)——面向对象的概念及三个基本特征
- 多线程与高并发(三):JUC包下新的同步机制:CAS,AtomicInteger,AtomicLong,ReentrantLock,CountDownLatch,ReadWriteLock等
- java后端工程师平时开发或多或少会用到Myeclipse,那么它有哪些快捷键呢
- 数据处理入门干货:MongoDB和pandas极简教程
- web重启tomcat_使用docker构建jdk镜像和web服务镜像
- [转载] java 内部类与闭包
- [转] 深入浅出oracle锁---原理篇
- 论文阅读笔记(八)——Ultra-thin MobileNet
- asp.net 微信小程序源码 微信分销源码 源文件完全开源 源码
- Linux下通过ssh上传下载文件
- Go语言开发实战课后编程题
- 酱爆如花四眼仔,周星驰金牌配角不止吴孟达,他们名字都没人知道
- 双十一,咪蒙广告位为何供不应求?
- 一个检查输入内容的 AppCompatEditText 。
- php ajax 域名查询,PHP+AJAX 实现域名查询系统
- 简单好用又免费的百度翻译mac桌面端
- 为什么我的电脑只能上qq不能打开网页
- 考研初试考java的学校,2021考研初试科目:这些学校改成统考408!