题目背景

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

题目描述

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

假设内存中有MM个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M-1M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入MM个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为NN个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

输入输出格式

输入格式:

共22行。每行中两个数之间用一个空格隔开。

第一行为两个正整数M,NM,N,代表内存容量和文章的长度。

第二行为NN个非负整数,按照文章的顺序,每个数(大小不超过10001000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

输出格式:

一个整数,为软件需要查词典的次数。

输入输出样例

输入样例#1: 复制

3 7
1 2 1 5 4 4 1

输出样例#1: 复制

5

说明

每个测试点1s1s

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

对于100\%100%的数据有0≤M≤100,0≤N≤10000≤M≤100,0≤N≤1000。

整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况:

空:内存初始状态为空。

1.11:查找单词1并调入内存。

2. 1 212:查找单词22并调入内存。

3. 1 212:在内存中找到单词11。

4. 1 2 5125:查找单词55并调入内存。

5. 2 5 4254:查找单词44并调入内存替代单词11。

6.2 5 4254:在内存中找到单词44。

7.5 4 1541:查找单词1并调入内存替代单词22。

共计查了55次词典。

//这个题目有一个用例一直WA,半个多小时没发现哪里出问题,又仔细看了下题目,原来题目中说的是非负整数啊。。

import java.util.Scanner;
public class Main{ public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int m=in.nextInt();
int n=in.nextInt();
int a[]=new int[m];
for(int i=0;i<m;i++){
a[i]=-1;
}
int i,j;
int index=0,count=0;
for(i=0;i<n;i++){
int word=in.nextInt();
for(j=0;j<m;j++){
if(a[j]==word){
break;
}
}
if(j==m){
count++;
a[index++%m]=word;
}
}
System.out.println(count);
} }

最新文章

  1. 奇淫绝技:Mysql报错注入利用总结分享
  2. NoSQL生态系统——一致性RWN协议,向量时钟,gossip协议监测故障
  3. iptables 工具
  4. glut编译问题 (程序无法运行)
  5. MyEclipse10导入工程jsp报错问题
  6. MakeFile 文件详解
  7. Android OOM 解决方案
  8. JAVA格式化时间日期
  9. zedboard--交叉编译Opencv库的生成 分类: shell ubuntu fool_tree的笔记本 ZedBoard OpenCV 2014-11-08 18:57 171人阅读 评论(0) 收藏
  10. A框架 第二部 实例化接收到的get类,调用父类抽象方法,自动执行方法call_user_func_array()
  11. NPM 简单实用说明
  12. [转载]如何快速下载、安装和配置chromedriver ?
  13. ORACLE获取SQL绑定变量值的方法总结
  14. [Hive_add_8] Hive 常用参数配置
  15. Python爬虫(四)——开封市58同城数据模型训练与检测
  16. Python3 系列之 环境配置篇
  17. Spring Security 用户认证原理分析
  18. linux command ------ find
  19. Python: Tkinter、ttk编程之计算器
  20. 8.3Solr API使用(StatsComponent聚合统计)

热门文章

  1. 正则表达式 test 踩坑指南
  2. ES2015 (ES6) 新特性: 20 个
  3. Full Stack Web Development
  4. Flutter &amp; release an iOS app
  5. js &amp; bitwise-operators
  6. how to open a terminal in finder folder of macOS
  7. 23_MySQL单行和多行子查询语法规则(重点)
  8. if...else和switch...case
  9. 七. SpringCloud服务配置
  10. 40. 组合总和 II + 递归 + 回溯 + 记录路径