zoukankan      html  css  js  c++  java
  • P1540翻译机器

    这是2010提高组第一题,是一个使用队列的模拟题(然而洛谷很多大佬用了最短路)

    这道题首先要判断内存中是否已有解释(因为题目已经说了长度很小,所以可以用桶排序),没有的话便去外存找,找到后,存到内存的尾部。如果内存已经满了,那么弹出头部。所以,这道题一看就是要使用队列。然而我手写的队列不给力,最后看了题解用了STL才AC,心里很难受。

    1.掌握队列的STL(size,front,pop,push)

    2.注意看题目条件,不要老想着用循环判断一件事,想想其余方法,如桶排序,,

    3.写选择语句时,尽量光写两个不一样的,具有共同点的写在一起。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<stack>
    #include<queue>
    #define N 100001
    using namespace std;
    bool memory[N];
    queue <int> q;
    int m,n;
    int dic;
    int main(){
        cin>>m>>n;
        for(int i=1;i<=n;i++){
            int x;
            cin>>x;
            if(memory[x]==true){
                continue;
            }
            else{
                if(q.size()>=m){
                    memory[q.front()]=false;
                    q.pop();
                    q.push(x);
                    dic++;
                    memory[x]=true;
                }
                else{
                    dic++;
                    q.push(x);
                }
            }
        } 
        cout<<dic;
        cout<<endl;
        return 0;
    }
    待到oi十一月,我花开后百花杀。
  • 相关阅读:
    个人冲刺6
    个人冲刺5
    个人冲刺4
    学习进度10
    个人冲刺3
    个人冲刺2
    单词统计
    返回一个整数数组中最大子数组的和
    JavaWeb_JavaEE_命名规则 转载http://www.cnblogs.com/xwdreamer/
    软件工程作业(四则运算web界面实现)-3
  • 原文地址:https://www.cnblogs.com/china-mjr/p/11238328.html
Copyright © 2011-2022 走看看