mibbp

i-9究极优化

  为啥是究极优化啊,因为我选错语言了时间慢了一倍多 但我不知道就一直改一直优化(QAQ),其实这个题就是维护一个大小为50的数组就行了。

  因为数据量最大就50,然后我们现在输入的时候记录下出现的数字的最小位置,然后找到最大的数为max然后维护大小位max的数组就好了,这个数组就是每个数字出现的最小下标,然后每次询问的时候把比这个数字小的下标加一,询问数字改为一就好了。

#include<iostream>
using namespace std;
int a,vis[55];
int main(){
    ios::sync_with_stdio(false);
    int n,q,op,max=0;
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>a;
        if(!vis[a])vis[a]=i;
        if(a>max)max=a;
    }
    while(q--){
        cin>>op;
        cout<<vis[op]<<" ";
        for(int i=1;i<=max;i++){
            if(vis[i]&&i!=op&&vis[i]<vis[op])vis[i]++;
        }
        vis[op]=1;
    }
    return 0;
}

 

posted on 2021-05-02 15:34  mibbp  阅读(150)  评论(0编辑  收藏  举报

导航