1401:机器翻译

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 13114     通过数: 5963

【题目描述】

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

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

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

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

【输入】

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

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

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

【输出】

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

【输入样例】

3 7
1 2 1 5 4 4 1

【输出样例】

5

【提示】

样例输入:

样例 #2:

2 10

8 824 11 78 11 78 11 78 8 264

样例输出:

样例 #2:

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 次词典。

【参考代码】

#include <stdio.h>
#define N 1010
int m,dicts[N],remain_count;
int lookup(int x)
{int i;if(dicts[x]!=0){return 0;}else{if(remain_count>0){remain_count--;}else{for(i=0;i<N;i++){if(dicts[i]>0)dicts[i]--;}}dicts[x]=m-remain_count;return 1;}
}
int main()
{int i,n,x,count=0;scanf("%d%d",&m,&n);remain_count=m;for(i=0;i<n;i++){scanf("%d",&x);count+=lookup(x);}printf("%d\n",count);return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1401

信息学奥赛一本通(1401:机器翻译)相关推荐

  1. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  4. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  5. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  6. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  7. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  8. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  9. 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC

    http://ybt.ssoier.cn:8088/show_source.php?runid=14630195 /* 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC http:/ ...

  10. 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂

    信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...

最新文章

  1. 整理收集49条JQuery代码小结
  2. matlab怎么画二维热力图_1.1交通热力图(2)——基于matlab绘制
  3. HDU 3555 Bomb (数位DP-记忆化搜索模板)
  4. C++实现简单的二叉树
  5. Runner站立会议06
  6. MNIST机器学习入门【学习笔记】
  7. Ajax与jQuery、json
  8. 万能的搜索--之DFS(二)
  9. 打表法判断素数 c语言,素数打表(4种方法)
  10. 红帽linux创建c文件,RedHat成功运行的第一个C程序全过程(适合新手)
  11. 新基建下的自动驾驶:车路协同和智慧交通为何成了急先锋?
  12. 文件或目录损坏其无法读取问题解决方法2022-9-15
  13. Hbuilder中如何快速输入注释标签_vscode中20个让人眼前一亮的插件
  14. 并联串联混合的电压和电流_中考物理热点1:电荷、电流、电压、串并联电路专题讲解...
  15. Neo4j 数据导入案例NorthWind load csv
  16. PDF切边裁剪软件下载
  17. 蓝桥杯-练习题(1017-1030)
  18. moble slider
  19. UI shader图片效果处理
  20. 【can接口卡、LCANTest使用,接收、发送、分析、记录、回放CAN报文】

热门文章

  1. javascript中类的定义和使用{转载}
  2. 边缘计算比云计算强在哪里?终于有人讲明白了
  3. 升值加薪Excel神助攻,数据透视表堪称神器!
  4. 张泉灵:时代抛弃你时,连一声再见都不会说
  5. android bitmap对比,Android Bitmap和Drawable的对比
  6. Redis 的快照为什么不会阻塞其他请求?
  7. JEECG 3.7 新装亮相,移动APP发布
  8. Activiti 学习记录1 inclusiveGateway与 exclusiveGateway的区别
  9. 制作Ubuntu16.04系统盘
  10. 手机端召唤Debug