机器翻译(信息学奥赛一本通-T1401)
【题目描述】
小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
假设内存中有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)相关推荐
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 信息学奥赛一本通在线提交地址
信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...
- 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 《信息学奥赛一本通提高篇》第6章 组合数学
例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...
- 《信息学奥赛一本通 提高篇》
提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC
http://ybt.ssoier.cn:8088/show_source.php?runid=14630195 /* 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC http:/ ...
最新文章
- nginx以unix-domain-socket方式连接fastcgi(php)
- 适配器模式(为被封装对象提供不同的接口)
- python合并数组输出重复项_python - 不同数组项的所有可能组合[重复] - 堆栈内存溢出...
- leetcode127. 单词接龙(bfs)
- 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
- c语言中数组结尾的0的作用,C语言里面一个数组最后的\0表示什么意思?
- 获取对话框当前cfont_flutter根据控件位置弹出对话框
- HashMap,TreeMap,LinkedHashMap学习
- 控制台中如何将IE11降级
- 使用Excel办公,你必须学会的文件加密、单元格锁定、复制可见单元格
- 05 js面向对象(属性操作符,创建对象)
- 126邮箱软件测试,selenium测试126邮箱新增联系人
- c语言编辑图形时钟软件,C++实现图形界面时钟表盘代码
- TiDB PCTP(PingCAP 认证 TiDB 数据库专家) 认证考试高分攻略
- NXP JN5169使用定时器进行PWM输出和定时功能
- LeetCode 322. 零钱兑换***
- js获取url中的主域名
- TOP10效率工具大集合,0-3岁运营/产品/设计的懒人高效工具!
- java并发编程:lock_编程的第五个十年:J代表Java
- 中国移动一级业务支撑系统多Kubernetes集群PaaS平台实践经验分享