• Codeforces Round #546 (Div. 2)D(贪心,思维,SET,VECTOR,模拟)


    #include<bits/stdc++.h>
    using namespace std;
    int a[300007],b[500007],c[500007];
    set<int>st[300007];
    vector<int>v;
    int main(){
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            v.push_back(a[i]);
        }
        int cnt=0;
        for(int i=1;i<=m;i++){
            scanf("%d%d",&b[i],&c[i]);
            st[b[i]].insert(c[i]);
        }
        v.pop_back();
        int ans=0;
        for(int i=(int)v.size()-1;i>=0;i--){//从后向前是为了保证只要i>=0就可以循环下去,不会使循环跑不完就停止
            int tmp=v[i];
            for(int j=i+1;j<v.size();j++){//从前向后换,可以让a[n]先和原先靠前的换后再和原先靠后的换,从而换的更远
                if(st[tmp].count(v[j])){
                    swap(v[j],v[j-1]);
                }
                else
                    break;
            }
            if(st[v.back()].count(a[n]))//队尾可以换到a[n]后面的话,彻底删除他
                v.pop_back();
        }
        ans=n-v.size()-1;
        printf("%d",ans);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    hdu 3507 Print Article —— 斜率优化DP
    bzoj 1096 仓库建设 —— 斜率优化DP
    ORDER BY 高级用法之CASE WHEN
    union和union all 的区别
    Ubuntu 链接ln的使用:创建和删除符号链接
    python中set和frozenset方法和区别
    python之sys模块详解
    odoo 8.0 多核启用
    Odoo 中的widget
    Odoo 在 Ubuntu 环境下性能调优
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10516761.html
Copyright © 2020-2023  润新知