/*
排除掉所有不可能的情况,剩下的就是可行的
1.数的数量不相同
2.对任意一个区间进行排序,等价于可以交换任意逆序对,
那么从1到n扫描b数组,判断是否可以将a数组中等于b[i]的值所在的位置j交换到位置i,等价于判断区间a[i,j]是否存在<b[i]的数,判完后这个数不会再用到,所以改成无穷大
类似于一类偏序问题,可以建立线段树为维护动态区间最小值

*/
#include<bits/stdc++.h>
#include<queue>
using namespace std;
#define maxn 300005
#define inf 0x3f3f3f3f int a[maxn],b[maxn],ta[maxn],tb[maxn],n; #define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int Min[maxn<<];
void pushup(int rt){
Min[rt]=min(Min[rt<<],Min[rt<<|]);
}
void build(int l,int r,int rt){
if(l==r){
Min[rt]=a[l];
return;
}
int m=l+r>>;
build(lson);
build(rson);
pushup(rt);
}
void update(int pos,int val,int l,int r,int rt){
if(l==r){
Min[rt]=val;
return;
}
int m=l+r>>;
if(pos<=m)update(pos,val,lson);
else update(pos,val,rson);
pushup(rt);
}
int query(int L,int R,int l,int r,int rt){
if(L<=l && R>=r)return Min[rt];
int m=l+r>>,res=0x3f3f3f3f;
if(L<=m)res=min(res,query(L,R,lson));
if(R>m)res=min(res,query(L,R,rson));
return res;
} queue<int>q[maxn]; int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=;i<=n;i++){
cin>>a[i],ta[i]=a[i];
while(q[a[i]].size())q[a[i]].pop();
}
for(int i=;i<=n;i++)cin>>b[i],tb[i]=b[i];
sort(ta+,ta++n);sort(tb,tb++n);
int flag=;
for(int i=;i<=n;i++)
if(ta[i]!=tb[i])flag=;
if(!flag){
build(,n,);
for(int i=;i<=n;i++)
q[a[i]].push(i);
for(int i=;i<=n;i++){
int pos=q[b[i]].front();
q[b[i]].pop();
int tmp=query(,pos,,n,);
update(pos,inf,,n,);
if(tmp<b[i])flag=;
}
}
if(flag)puts("NO");
else puts("YES");
}
}

最新文章

  1. WPF模板
  2. ARCGIS常用几种本地数据AE初始化
  3. Alembic
  4. iOS----Asset Catalog的用法
  5. eclipse技巧总结
  6. Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”——HTTP
  7. C#控制台输入
  8. apache 工作模式
  9. ssh链接云主机的一些笔记
  10. sql 当重复的数据有多条时,保留一条,删除其他重复
  11. MySql索引原理与使用大全
  12. 使用Visual Studio 2010 - 初学者系列 - 学习者系列文章
  13. Jquery 实现原理之 Ajax
  14. JS实现轻量级计算器
  15. java基础(九章)
  16. Queuing(以前写的没整理)
  17. aspnetcore.webapi实战k8s健康探测机制 - kubernetes
  18. tensorflow 使用 4 非线性回归
  19. 廖雪峰 JavaScript 学习笔记(函数)
  20. kue

热门文章

  1. 一行代码在 .NET Core 中快速使用 log4net
  2. Neo4j 小调研
  3. JS获取CkEditor在线编辑的内容
  4. codeforces 24d Broken robot 期望+高斯消元
  5. 过滤掉map集合中key或value为空的值
  6. C# 模拟http请求网页数据 [网页爬虫]
  7. MyBatis是如何使用的?
  8. 使用node搭建服务时,服务可以启动,但是无法访问
  9. Android android studio常用的一些快捷键以及常用权限
  10. 概率期望+闭包+bitset优化——hdu5036