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

发布时间:2020-07-31 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了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;}

总结

以上是脚本之家为你收集整理的Codeforces Round #546 (Div. 2)D(贪心,思维,SET,VECTOR,模拟)全部内容,希望文章能够帮你解决Codeforces Round #546 (Div. 2)D(贪心,思维,SET,VECTOR,模拟)所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478