题解 P1540 【机器翻译】

2018-02-09 18:44:41


本蒟蒻的第二个题解。。。 用了C++的vector容器

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<vector>
using namespace std;
vector <int> q;
int wz,sum,t;
int main(){
    int m,n;
    cin>>m>>n;
    for(int i=0;i<n;++i){
        scanf("%d",&wz); //读入数据
        if(i==0) {
        q.push_back(wz); //i=0是直接存内存
        sum++;  
        continue;
        }
        for(int j=0;j<q.size();++j){
            if(wz==q[j]) break; //找到数据之后就break 找内存里的数据
            if(j==q.size()-1&&q.size()<m){ //内存未满
                q.push_back(wz); //存入数据
                sum++;
            }
            if(j==q.size()-1&&q.size()==m){ //内存满了
                q.erase(q.begin()); //删掉第一个
                q.push_back(wz); //从后往前存
                sum++;
            }
        }
    }

    printf("%d",sum); //输出结果
}

本蒟蒻的博客