OJ# 376 机器翻译

这篇具有很好参考价值的文章主要介绍了OJ# 376 机器翻译。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述

​ 小李的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。
​这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,
如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,
并将这个单词和译义放入内存,以备后续的查找和翻译。​ 假设内存中有 M 个单元,每单元能存放一个单词和译义。
每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1,软件会将新单词存入一个未使用的内存单元;
若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。
​假设一篇英语文章的长度为 N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?
假设在翻译开始前,内存中没有任何单词。

输入

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

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

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

输出

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

样例输入
3 7
1 2 1 5 4 4 1
样例输出

5

样例说明

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

空:内存初始状态为空。

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

2. 12:查找单词2并调入内存。

3. 12:在内存中找到单词1。

4. 125:查找单词5并调入内存。

5. 254:查找单词4并调入内存替代单词1。

6. 254:在内存中找到单词4。

7. 541:查找单词1并调入内存替代单词2。

共计查了5次词典。

数据规模与约定

​ > 时间限制:1 s

​ > 内存限制:256 M

​ > 100% 的数据保证 0≤M≤100,0≤N≤1000

代码
#include <stdio.h>
#include <stdlib.h>

int chapter[1005] = {0};
void add_word(int *memory, int word, int m) {
  for (int i = 0; i < m; i++) {
    if (memory[i] == -1) {
      memory[i] = word;
      break ;
    }
  }
}

void replace_first_word(int *memory, int word, int m) {
  for (int i = 0; i < m - 1; i++) {
    memory[i] = memory[i + 1];
  }
  memory[m - 1] = word;
}

int is_found(int *memory, int word, int m) {
  for (int i = 0; i < m; i++) {
    if (memory[i] == word) {
      return 1;
    }
  }
  return 0;
}

void find_count(int *chapter, int m, int n) {
  int count = 0, size = 0, memory[105] = {0};
  
  for (int i = 0; i  < m; i++) {
    memory[i] = -1;
  }

  for (int i = 0; i < n; i++) {
    if (!is_found(memory, chapter[i], m)) {
      if (count < m) {
        add_word(memory, chapter[i], m);
      } else {
        replace_first_word(memory, chapter[i], m);
      }
      count++;
    }
  }

  printf("%d", count);
}

int main() {
  int m, n;
  scanf("%d%d\n", &m, &n);

  for (int i = 0; i < n; i++) {
    scanf("%d", &chapter[i]);
  }
  find_count(chapter, m, n);
  return 0;
}

OJ# 376 机器翻译文章来源地址https://www.toymoban.com/news/detail-510886.html

到了这里,关于OJ# 376 机器翻译的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 几个nlp的小任务(机器翻译)

    2024年02月10日
    浏览(29)
  • 【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)

    系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署之onnx(python)(四

    2024年02月15日
    浏览(44)
  • 【如何训练一个中英翻译模型】LSTM机器翻译模型部署之onnx(python)(四)

    系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署之onnx(python)(四

    2024年02月15日
    浏览(29)
  • 为什么需要多语言并行机器翻译?

    随着全球化的加速和不同语言之间的交流需求不断增长,多语言机器翻译(Multilingual Parallel Machine Translation)成为一个备受关注的领域。传统上,机器翻译系统主要集中于一对特定语言之间的翻译,但这种单一语言对的模式在面对多语言环境时存在一些挑战。因此,多语言并

    2024年02月12日
    浏览(37)
  • 什么是自然语言处理的机器翻译?

    机器翻译(Machine Translation,MT)是一种自然语言处理技术,旨在将一种语言的文本自动翻译成另一种语言。机器翻译是自然语言处理领域的重要应用之一,它可以帮助人们在跨语言交流、文档翻译和信息检索等方面更加便捷和高效。本文将详细介绍自然语言处理的机器翻译。

    2024年02月05日
    浏览(27)
  • 【动手学深度学习】--机器翻译与数据集

    学习视频:机器翻译数据集【动手学深度学习v2】 官方笔记:机器翻译与数据集 机器翻译 (machine translation)指的是 将序列从一种语言自动翻译成另一种语言。 事实上,这个研究领域可以追溯到数字计算机发明后不久的20世纪40年代, 特别是在第二次世界大战中使用计算机破

    2024年02月09日
    浏览(29)
  • 人工智能-机器翻译:技术发展与代码实战

    在本文中,我们深入探讨了机器翻译的历史、核心技术、特别是神经机器翻译(NMT)的发展,分析了模型的优化、挑战及其在不同领域的应用案例。同时,我们还提出了对未来机器翻译技术发展的展望和潜在的社会影响。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网

    2024年02月05日
    浏览(33)
  • Transformer(四)--实现验证:transformer 机器翻译实践

    转载请注明出处:https://blog.csdn.net/nocml/article/details/125711025 本系列传送门: Transformer(一)–论文翻译:Attention Is All You Need 中文版 Transformer(二)–论文理解:transformer 结构详解 Transformer(三)–论文实现:transformer pytorch 代码实现 Transformer(四)–实现验证:transformer 机器翻译实践

    2024年02月11日
    浏览(253)
  • 机器翻译的大数据挑战:数据清洗与处理

    机器翻译是人工智能领域的一个重要研究方向,其目标是让计算机能够自动地将一种自然语言翻译成另一种自然语言。随着大数据时代的到来,机器翻译面临着巨大的数据挑战。这篇文章将从数据清洗和处理的角度探讨机器翻译的大数据挑战。 机器翻译具有广泛的应用,例如

    2024年04月15日
    浏览(45)
  • Python调用各大机器翻译API大全

    过去的二三年中,我一直关注的是机器翻译API在自动化翻译过程中的应用,包括采用CAT工具和Python编程语言来调用机器翻译API,然后再进行译后编辑,从而达到快速翻译的目的。 然而,我发现随着人工智能的发展,很多机器翻译也做了相应的调整,调用机器翻译api的样例也发

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包