题意:

  给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$

    变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$


  考虑一个数字从A排列到B排列连出来的路径与其他数字是否相交,相交就表示大小关系需要判断,(类似于二维偏序)用线段树维护区间最小值即可。

  

  权值为1,2的线分别与权值为4的线相交,而且4在它们左边,所以需要判断它们的大小关系,发现${4>1}$,${4>2}$,所以满足条件。


 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
#define maxn 20000010
#define MAXN 2000100
#define llg int
#define inf 0x7fffffff
#define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
llg n,m,minl[maxn],a[MAXN],c[MAXN],rank[MAXN]; llg min_(llg o,llg l,llg r,llg L,llg R)
{
if (l>=L && r<=R)
{
return minl[o];
}
llg lc=o<<,rc=o<<|,mid=(l+r)>>;
llg ans=inf;
if (L<=mid) ans=min(ans,min_(lc,l,mid,L,R));
if (R>mid) ans=min(ans,min_(rc,mid+,r,L,R));
return ans;
} void add(llg o,llg l,llg r,llg wz,llg val)
{
if (l==r)
{
minl[o]=val;
return ;
}
llg lc=o<<,rc=o<<|,mid=(l+r)>>;
if (wz<=mid) add(lc,l,mid,wz,val);
if (wz>mid) add(rc,mid+,r,wz,val);
minl[o]=min(minl[lc],minl[rc]);
}
inline int getint()
{
int w=,q=;
char c=getchar();
while((c<'' || c>'') && c!='-') c=getchar();
if (c=='-') q=, c=getchar();
while (c>='' && c<='') w=w*+c-'', c=getchar();
return q ? -w : w;
}
int main()
{
//yyj("C");
cin>>n;
for (llg i=;i<=n;i++) a[i]=getint();
for (llg i=;i<=n;i++) c[i]=getint();
for (llg i=;i<=n;i++) rank[c[i]]=i;
for (llg i=;i<=;i++) minl[i]=inf;
for (llg i=;i<=n;i++)
{
llg x=rank[a[i]];
llg v=min_(,,n,x,n);
if (a[i]>v) {cout<<"NO"; return ;}
add(,,n,x,a[i]);
}
cout<<"YES";
return ;
}

最新文章

  1. (转)单机上配置hadoop
  2. 济南学习 Day 2 T3 am
  3. 使用DBCC SHOW_STATISTICS展示索引的统计信息
  4. iOS类别(Category)
  5. Android 学习手札(三) 视图(View)
  6. hdu 2289 Cup (二分法)
  7. 使用WebUploader使用,及使用后测试横拍或竖拍图片图片方向不对等解决方案
  8. Hibernate 多对多映射
  9. 虚拟机安装中文Fedora14和C/C++IDE开发环境
  10. .NET:从 Mono、.NET Core 说起
  11. mcstructs使用CMake生成Makefile文件
  12. python递归查找文件目录
  13. 海外仓系统 COD货到付款到付功能
  14. Java Native方法
  15. Redis服务信息
  16. properties类是Hashtable的子类
  17. Win7 Win8 Win10取不到机器码的处理办法
  18. c++进阶学习
  19. Linux sed 流编辑器
  20. Mac安装zsh oh-my-zsh

热门文章

  1. (转)Kangle配置文件
  2. ubuntu 安装ftp,配置,和java调用
  3. 改善深层神经网络_优化算法_mini-batch梯度下降、指数加权平均、动量梯度下降、RMSprop、Adam优化、学习率衰减
  4. 课堂练习Complex类
  5. 怎么在jquery里清空文本框的内容
  6. virtualBox虚拟机联网
  7. camera原理
  8. jq table页二级联动
  9. Keepalived 安装
  10. linux常用命令:telnet 命令