首页 > 其他 > 详细

P1540 机器翻译

时间:2020-10-21 22:35:00      阅读:44      评论:0      收藏:0      [点我收藏+]

用队列维护单词进入内存的时间顺序,并根据题目所给的内存限制动态调整内存区域存储的单词,并对内存中包括的单词做标记
注意:题面说如果内存中已经存在这个单词就不要到外存去找了,相应的不需要把这个单词放到内存里。
复杂度:\(O(n)\)

#include<iostream>

using namespace std;

const int N = 1010;

int st[N];
int m, n;
int q[N], hh, tt = -1;

int main(){
    cin >> m >> n;
    
    int res = 0;
    while(n --){
        int x;
        
        cin >> x;
        
        if(st[x]) continue;
        res ++;
        while(tt - hh + 1 > m - 1) st[q[hh ++]] --;
        st[x] ++;
        q[++ tt] = x;
    }
    
    cout << res;
    
    return 0;
}

P1540 机器翻译

原文:https://www.cnblogs.com/tomori/p/13854160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!