描述

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

输入
第一行为两个正整数M 和N,代表内存容量和文章的长度。
第二行为N 个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。
输出
共1 行,包含一个整数,为软件需要查词典的次数。
样例输入
2 10
8 824 11 78 11 78 11 78 8 264
样例输出
6
提示
【输入输出样例 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 次词典。

【数据范围】

对于10%的数据有M=1,N≤ 5。

对于100%的数据有0

模拟。复习了C++中vector的知识。

#include<queue>
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<iostream>
#define N 1010
using namespace std;
char st[N];
int m,n,a[N];
int ans=1;
vector <int>q;
int inq(int k){int flag=0;for(int i=0;i<q.size();i++)if (q[i]==k) {flag=1;break;}return flag;
}
int main(){cin>>m>>n;for(int i=1;i<=n;i++) scanf("%d",&a[i]);q.push_back(a[1]);for (int i=2;i<=n;i++){int len=q.size();if (inq(a[i])) continue;else{ans++;if (len<m) q.push_back(a[i]);else {q.erase(q.begin());q.push_back(a[i]);}}}cout<<ans;return 0;
}

NOIp2010 机器翻译相关推荐

  1. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下. Noip2007 树网的核:floyd,推出性质,暴力. Noip2008 笨小猴:模拟 Noip2008 火柴棒等式:枚举 Noip2008 传纸条:棋盘dp ...

  2. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

  3. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  4. OI 刷题记录——每周更新

    每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...

  5. NOIP2010 提高组 复赛 translate 机器翻译

    NOIP2010 提高组 复赛 translate 机器翻译 1.读题,很快弄明题意,单词不在内存中就查字典,统计查字典次数. 2.内存采用队列方式.统计进队列次数,即为查询次数. 3.程序很快编好, ...

  6. 【NOIP2010】【Luogu1540】机器翻译

    problem solution codes //STL大法好 #include<iostream> #include<set> #include<queue> u ...

  7. NOIP2010 提高组 机器翻译

    题目:http://www.tsinsen.com/ViewGProblem.page?gpid=A1182 解析:题目比较简单,应用了对列(数组模拟) 评测: /** =============== ...

  8. LPOJ - 5498 「NOIP2010」机器翻译

    小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先在内存中查找这个单词 ...

  9. NOIP2010提高组题解

    [NOIP2010 提高组] 机器翻译 题目:[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单 ...

  10. 凡人升天传7——NOIP2010 提高组复赛题解

    本蒟蒻在考试时最后一道直接报零*__*,悲痛欲绝,因此在这里著下本题解. 可恶的西西弗 虽然题目做的很垃圾,但在写题解中途不得不感叹除了最后一道,其他真是好水题呀!!! --------------- ...

最新文章

  1. ARM嵌入式操作系统启动
  2. EXCEL公式、函数、图表应用技巧800问
  3. linux关闭硬件蜂鸣器,linux 关闭主板上的蜂鸣器声音
  4. 数据导入和整理模块---pandas
  5. Windows 7可以体验IE10了
  6. 初学Java,如何成为年薪50万的程序员?
  7. express 随笔
  8. 加速度计和陀螺仪数据融合
  9. js文件夹上传到服务器,js 上传img到服务器
  10. icml和nips等各类重要会议论文收集
  11. php使用mysqlnd引发的一些问题处理
  12. TensorFlow-RNN循环神经网络 Example 2:文本情感分析
  13. mysql连接查询优点_1105 ROM优缺点,MySQL连接类,查插更方法
  14. Gbase相关学习总结
  15. Android范围自定义,android – 如何在dagger 2.10中创建自定义范围模块
  16. telnet 命令参数及其应用方式
  17. Delphi D10.X中实现安卓中文语音合成(中文朗读)就这么简单
  18. JavaScript — 浏览器事件、冒泡和捕获、事件委托
  19. 软件工程作业7.8.9
  20. 未能加载文件或程序集什么原因

热门文章

  1. 计量经济学 联合假设检验 F统计量
  2. C++调用libVLC播放视频
  3. 悲:又有华为员工猝死,原因调查中
  4. 我还是很喜欢你,像风走了八千里,不问归期
  5. IOS 开发 Cache文件夹缓存的清理封装(包括WebKit缓存/SDImageCache缓存),都提供了相应的接口.
  6. iPhone5s 换电池、修右上角翘起的悲催过程
  7. 笔记本不用fn也能用功能键
  8. Redis重启数据丢失问题
  9. Unix/Linux环境C编程入门教程(14) Mandriva LinuxCCPP开发环境搭建
  10. 华为荣耀手机 (HUAWEI Honor V9) USB 调试 - ADB 调试