【题目描述】

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

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

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

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

【输入】

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

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

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

【输出】

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

【输入样例】

3 7
1 2 1 5 4 4 1

【输出样例】

5

【源程序】

#include<iostream>
using namespace std;void replace();
int a[1001]= {0};
int ans=0;
int m,n;
int x;int main()
{int i;cin>>m>>n;for(i=1; i<=n; i++){cin>>x;//输入单词if(a[x]==0&&ans<m)//需要查找且内存未满{ans++;//查找次数+1a[x]=ans;//存储ans,桶排的思想}else//若内存已满replace();//调用函数}cout<<ans<<endl;return 0;
}
void replace()
{int sum;int i;if(a[x]==0&&ans>=m)//需要查找内存已满{ans++;sum=0;for(i=0; i<=1000; i++){if(a[i]>=1)//每个单词存入顺序向前移动一位{a[i]=a[i]-1;sum++;}if(sum==m)//移动过后结束循环break;}if(m>0)//若内存非零则存入新单词a[x]=m;}
}

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

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

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

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

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

  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:/ ...

最新文章

  1. nginx以unix-domain-socket方式连接fastcgi(php)
  2. 适配器模式(为被封装对象提供不同的接口)
  3. python合并数组输出重复项_python - 不同数组项的所有可能组合[重复] - 堆栈内存溢出...
  4. leetcode127. 单词接龙(bfs)
  5. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
  6. c语言中数组结尾的0的作用,C语言里面一个数组最后的\0表示什么意思?
  7. 获取对话框当前cfont_flutter根据控件位置弹出对话框
  8. HashMap,TreeMap,LinkedHashMap学习
  9. 控制台中如何将IE11降级
  10. 使用Excel办公,你必须学会的文件加密、单元格锁定、复制可见单元格
  11. 05 js面向对象(属性操作符,创建对象)
  12. 126邮箱软件测试,selenium测试126邮箱新增联系人
  13. c语言编辑图形时钟软件,C++实现图形界面时钟表盘代码
  14. TiDB PCTP(PingCAP 认证 TiDB 数据库专家) 认证考试高分攻略
  15. NXP JN5169使用定时器进行PWM输出和定时功能
  16. LeetCode 322. 零钱兑换***
  17. js获取url中的主域名
  18. TOP10效率工具大集合,0-3岁运营/产品/设计的懒人高效工具!
  19. java并发编程:lock_编程的第五个十年:J代表Java
  20. 中国移动一级业务支撑系统多Kubernetes集群PaaS平台实践经验分享

热门文章

  1. FreeModbus ASCII传输
  2. 【服务器实战搭建】centos7下使用yum安装mysql
  3. Linux 查看ERROR日志方法
  4. 数字音视频知识点汇总(二)
  5. Redis之GeoHash
  6. Linux版本号含义
  7. 交换机的简介及数据通信过程,子网掩码及路由基础
  8. 树莓派:文本编辑器与文件
  9. Django框架 from django.core.files.uploadedfile import InMemoryUploadedFile
  10. 乔春洋:品牌管理创新