题目背景

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

题目描述

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

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

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

输入输出格式

输入格式:

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

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

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

输出格式:

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

输入输出样例

输入样例#1:

3 7
1 2 1 5 4 4 1

输出样例#1:

5

说明

每个测试点1s1s1s

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

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

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

空:内存初始状态为空。

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

2. 121 212:查找单词222并调入内存。

3. 121 212:在内存中找到单词111。

4. 1251 2 5125:查找单词555并调入内存。

5. 2542 5 4254:查找单词444并调入内存替代单词111。

6.254 2 5 4254:在内存中找到单词444。

7.541 5 4 1541:查找单词1并调入内存替代单词222。

共计查了555次词典。

暴力模拟水题,代码中有注意事项

代码如下:

 #include<cstdio>
int word[];
bool sch(int tgt,int range)//线性搜索,因为数据<1000,不会超时。
{
for(int i=;i<range;i++)
{
if(word[i]==tgt)
{
return true;
}
}
return false;
}
int main()
{
int mem,num,tm,wor,ans=;
scanf("%d %d",&mem,&num);
tm=;
for(int i=;i<;i++)
{
word[i]=-;//数组初始化一定要初始化成-1!!!!
//字母代号有可能是0,所以初始化成0会出错!!!!
}
for(int i=;i<num;i++)
{
scanf("%d",&wor);
//非常节省空间和时间的模拟
if(tm>=mem)
{
tm=;
}
if(!sch(wor,mem))
{
//自己进行轮回。。。
ans++;
word[tm]=wor;
tm++;
}
}
printf("%d",ans);
}

洛谷-机器翻译-NOIP2010提高组复赛的更多相关文章

  1. 洛谷P1514 [NOIP2010提高组T4]引水入城

    P1514 引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城 ...

  2. 洛谷 1541 NOIp2010提高组 乌龟棋

    [题解] 很容易想到这是一个DP,f[i][j][k][l]表示4种卡片分别用了多少张,那么转移方程就是f[i][j][k][l]=Max(f[i-1][j][k][l],f[i][j-1][k][l ...

  3. 洛谷 P2678 & [NOIP2015提高组] 跳石头

    题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...

  4. 洛谷 P1025 & [NOIP2001提高组] 数的划分(搜索剪枝)

    题目链接 https://www.luogu.org/problemnew/show/P1025 解题思路 一道简单的dfs题,但是需要剪枝,否则会TLE. 我们用dfs(a,u,num)来表示上一个 ...

  5. 洛谷P1084 [NOIP2012提高组Day2T3]疫情控制

    P1084 疫情控制 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控 ...

  6. 洛谷P1083 [NOIP2012提高组Day2T2]借教室

    P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...

  7. 洛谷P1315 [NOIP2011提高组Day2T3] 观光公交

    P1315 观光公交 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号 ...

  8. 洛谷P1313 [NOIP2011提高组Day2T1]计算系数

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

  9. 洛谷P1312 [NOIP2011提高组Day1T3]Mayan游戏

    Mayan游戏 题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游 ...

随机推荐

  1. Java基础教程:反射基础

    Java基础教程:反射基础 引入反射 反射是什么 能够动态分析类能力的程序称为反射. 反射是一种很强大且复杂的机制. Class类 在程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时 ...

  2. Kattis - horrorfilmnight 【贪心】

    题意 有两个人想去一起看电影,然后分别给出两个人 分别喜欢看的电影都在哪些天 然后 同一个人 不能连续看两天他不喜欢的电影 求他们最多可以看多少次电影 思路 先将两人喜欢看的电影进行排序, ① 选择两 ...

  3. OSI 与 TCP/IP

    OSI参考模型 物理层(Physical Layer) --- 数据表示.物理层规定了激活.维持.关闭通信端点之间的机械特性.电气特性.               功能特性以及过程特性.该层为上层协 ...

  4. css3条纹边框效果

    在线演示 本地下载

  5. poj 2356 Find a multiple【鸽巢原理 模板应用】

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6651   Accepted: 2910   ...

  6. java的远程访问接口的实例

    被别人远程调用和自己远程调用别人接口的理解: 被别人调用接口:其实没有什么神秘的,就是我们写一个正常的方法提供一个访问路径. 调用别人的接口:本质时一个Request请求,实际要使用到javax.ne ...

  7. Struts2的使用

    Struts2的核心类库 名称 说明 Struts2-core-2.3.4.jar 核心类库 Xwork-core-2.3.4.jar Xwork的核心类库 Ognl-3.0.5.jar Ognl表达 ...

  8. Spark-Spark setMaster & WordCount Demo

    Spark setMaster源码 /** * The master URL to connect to, such as "local" to run locally with ...

  9. 从HTTP请求中获取客户IP地址

    /**     * 从HTTP请求中获取客户IP地址     *     * @param request http请求     * @return 客户IP地址     */    public s ...

  10. 【BZOJ 4199】[Noi2015]品酒大会 后缀自动机+DP

    题意 两个长度为$r$的子串相等称为$r$相似,两个$r$相似的权值等于子串开头位置权值乘积,给定字符串和每个位置权值,求$r$相似子串数量和最大权值乘积 对反串建立后缀自动机得到后缀树,后缀树上两个 ...