多校第8场&&HDU 5821

来源:互联网 发布:我知女人心综艺节目 编辑:程序博客网 时间:2024/06/04 22:10

【题意】题目给了两个代表颜色的序列,然后给了q个操作,每个操作有个[l,r]区间,表示你可以把[l,r]区间里面所有的数任意排列,问最后能否利用这些操作使得a变到b数组。

【解题方法】


【AC 代码】

#include <bits/stdc++.h>using namespace std;const int maxn=1002;pair<int,int>p[maxn];int main(){    int T;    int n,m;    scanf("%d",&T);    while(T--){        scanf("%d%d",&n,&m);        int x;        for(int i=1; i<=n; i++){            scanf("%d",&x);            p[i]=make_pair(0,x);        }        for(int i=1; i<=n; i++){            scanf("%d",&x);            for(int j=1; j<=n; j++){                if(p[j].second==x&&!p[j].first){                    p[j].first=i;                    break;                }            }        }        int l,r;        while(m--){            scanf("%d%d",&l,&r);            sort(p+l,p+r+1);        }        bool ok=1;        for(int i=1; i<=n; i++){            if(p[i].first!=i){                ok=0;                break;            }        }        if(ok) puts("Yes");        else puts("No");    }}


0 0