当前位置: 代码迷 >> 综合 >> P1540 机器翻译 (noip 2010 , 模拟)
  详细解决方案

P1540 机器翻译 (noip 2010 , 模拟)

热度:97   发布时间:2023-12-13 19:55:26.0

题目:
1、 noip_2010 水题
2、 用队列 queue 维护缓存,用 数组 vis[MaxN] 来记录每一个词语是否在缓存上

#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;const int MaxN = 1010;
bool vis[MaxN] = {
    false};
int n, m;int main()
{
    queue<int> q;scanf("%d%d", &m, &n);int word;int ans = 0;int front = 0;for(int i = 0; i < n; ++i){
    scanf("%d", &word);if(false == vis[word]){
    if((int)q.size() >= m){
    front = q.front();vis[front] = false;q.pop();}q.push(word);vis[word] = true;++ans;}}printf("%d\n", ans);return 0;
}/* 3 7 1 2 1 5 4 4 1 *//* 5 */
  相关解决方案