
P1540 [NOIP 2010 提高组] 机器翻译 - 洛谷
小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。 对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有 M 个单元,每单元能存放一个单词和译义。 每当 …
洛谷 P1540 [NOIP2010 提高组] 机器翻译 - 鈟 - 博客园
2024年8月19日 · 洛谷 p1540 [noip2010 提高组] 机器翻译 题目概括 给定 N 个整数,和一个容量为 M 的“字典”,从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进入的。
【C++题解/洛谷】P1540 [NOIP2010 提高组] 机器翻译 - CSDN博客
【C++题解/洛谷】P1540 [NOIP2010 提高组] 机器翻译. Jianghaoyu123456: 对不起哈,代码块里注释打错了,不是函数,是数组。vis[]是用来记录单词是否在队列里的 【C++题解/洛谷】P1540 [NOIP2010 提高组] 机器翻译. 我叫四个der_: 你好 可以讲一下bool函数啥意思吗
P1540 [NOIP 2010 提高组] 机器翻译 - CSDN博客
2025年2月8日 · 链接:p1540 [noip 2010 提高组] 机器翻译 - 洛谷 | 计算机科学教育新生态. 题目描述. 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。
洛谷.P1540 [NOIP2010 提高组] 机器翻译之玩转队列 - CSDN博客
2022年11月16日 · 该篇博客介绍了如何运用队列和一个判断数组来解决NOIP2010提高组的机器翻译问题。 通过初始化队列和dp数组,博主详细阐述了在内存满时如何处理单词,并统计进入外存的次数。 整个过程包括初始化、队列操作和判断逻辑,最终实现对外存查找次数的统计。 队列控制内存里存放的单词。 数组 是为了方便查找队列里是否有需要找的单词,是否要去外存中去找。 题目要我们统计在外存中查找的次数,那我们就只要计算去判断去过外存的次数。 还要记得判 …
题解:P1540 [NOIP2010 提高组] 机器翻译 - 洛谷专栏
2025年1月7日 · 题解:p1540 [noip2010 提高组] 机器翻译. gsq0829 · 2025-01-07 20:50:43 · 题解. 思路: 指针的思想来做是很好的。 边输入边做题,判断每一个输入的数,这数的桶是否为零,如果是,计数器加一,指针的右边也加一,在 b 数组中存入新单词。
洛谷——P1540 机器翻译 - Aptal丶 - 博客园
2017年7月3日 · 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。 对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有M个单元,每单元能存放一个单 …
P1540 Solution - 洛谷专栏
2025年1月9日 · P1540 Solution. OIerWu_829 · 2025-01-09 15:16:30 · 题解. 题目传送门. 用 vis 数组标记每个数在内存中的状态,再用队列模拟内存。每次输入一个数,如果它不在内存中,那么就把它打上标记,并加入队列。
洛谷p1540—机器翻译(单链表复习) - Ever17 - 博客园
2019年7月14日 · 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。 对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有 M个单元,每单元能存放一个 …
P1540 机器翻译(C语言) - CSDN博客
2020年8月3日 · P1540 机器翻译1.思路看到这道题的时候,看标签与队列有关,但不知如何书写代码。 只好借鉴大佬的代码,但代码太简单了,好难理解。 想了5,6分钟才明白。 核心:就是先把数存进去,然后如果出现相同的,则不存进去,因为内存里已经有一个了。 然后如果内存存满了,则重新从0开始将之前的覆盖。 如何不将数存入,可以用一个数进行标记,如果出现了,则重新进入循环,并输入数。 2.源码#include<stdio.h>int main () { int M,N; scanf ("%d %d",&a_c语言机 …