http://uoj.ac/contest/25/problem/180

从前往后对比串A,B

当$A_i,B_i$不相同时找到$B_i$在A中的位置j

若$min{A_1,A_2,A_3......A_{j-1}}<A_j$说明$A_j$无法交换到位置i,就GG惹

否则把$A_j$设为INF

线段树维护区间取min,单点修改

#include<cstdio>
#include<iostream>
#include<algorithm>
using std::cin;
using std::cout;
using std::min;
using std::max;
#define INF 0x7fffffff
const int maxn = 100007;
int n;
inline int read() {int x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-')f=-1;c=getchar() ;}while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();return x*f;
}
int a[maxn],b[maxn];
int pos[maxn];
int minn[(maxn<<2)+3] ;
void merge(int rt) {minn[rt]=min(minn[rt<<1],minn[rt<<1|1]);
}
void build(int l,int r,int rt) {if(l==r) {minn[rt]=a[l];return;}int mid = l+r>>1;build(l,mid,rt<<1);build(mid+1,r,rt<<1|1);merge(rt);
}
int query(int l,int r,int rt,int tl,int tr) {if(tl<=l&&tr>=r) {    return minn[rt];}int mid=l+r>>1;int ans=INF;if(tl<=mid) ans=min(ans,query(l,mid,rt<<1,tl,tr));if(tr>mid) ans=min(ans,query(mid+1,r,rt<<1|1,tl,tr));return ans;
}
void modify(int l,int r,int rt,int pos) {if(l==r) {minn[rt]=INF;return;}int mid= l+r>>1;if(mid>=pos)modify(l,mid,rt<<1,pos);else if(mid<pos)modify(mid+1,r,rt<<1|1,pos);merge(rt);
}
int main() {n=read();for(int i=1;i<=n;++i) a[i]=read(),pos[a[i]]=i;for(int i=1;i<=n;++i) b[i]=read();build(1,n,1);for(int i=1;i<=n;++i) {//if(a[i]!=b[i]) {int p=pos[b[i]];int tmp=query(1,n,1,1,p);if(tmp<b[i]) {cout<<"NO"<<std::endl;return 0;}else modify(1,n,1,p);//    }
    }cout<<"YES"<<std::endl;return 0;
}

转载于:https://www.cnblogs.com/sssy/p/8322091.html

UOJ 180【UR #12】实验室外的攻防战相关推荐

  1. UOJ【UR #12】实验室外的攻防战

    题意: 给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$ 变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$ 考虑一个数字从A排列到B排列连出来的路径 ...

  2. 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组

    题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 ...

  3. 支付宝双11狂欢幕后的女程序员:服务全球12亿人,每天和不法分子打攻防战

    再过3天,全球最大的购物狂欢节就开始了. 在这个睡不着的午夜,无数男男女女会在闪烁的屏幕前滑屏.抢购.享受秒级付款带来的快感.整个过程大脑分泌的多巴胺,又驱使他们以更快的速度重新填满购物车. 2018 ...

  4. 设计师:设计师知识储备(硬装、软装、榻榻米、马卡龙、地台、公共空间、玄关、闭水实验)之详细攻略

    设计师:设计师知识储备(硬装.软装.榻榻米.马卡龙.地台.公共空间.玄关.闭水实验)之详细攻略 目录 设计师知识储备(硬装.软装.榻榻米.马卡龙.地台.公共空间.玄关.闭水实验) 硬装

  5. 转载:KOF97八神攻防战

    拳皇97八神攻防战,(一)八神狂攻 首先给大家带来一套八神的迷你攻击战术,当然这种战术也是有破绽的,那就要看你自己的速度和随机应变的战术思想了. 前小跳D(不带残影)>前小跳C(带残影)> ...

  6. 移动游戏防作弊攻防战

    在刚刚举行的MDCC活动上,乐元素CTO凌聪分享了一个非常有意思的话题:移动游戏如何进行防作弊的攻防战. 凌聪分析了作弊(主要是弱联网休闲游戏的作弊)的影响,比如改变排行榜中的全局排行与好友排行,还会 ...

  7. 小米互联通信服务_小米战华为,中国手机市场正上演最精彩攻防战

    提起国产手机,很多人都会想起小米与华为这两个品牌.这两家公司,是2019年国产手机品牌里唯二登上世界500强榜单的企业. 他们一个依靠互联网模式,从诞生到上市,如今不过10个年头,却在业内掀起无数波涛 ...

  8. SinoBBD 编织全方位安全“防护网”开启最强DDoS 攻防战

    近日,黑客组织"匿名者(Anonymous)"向全球超过 140 个金融机构发起了新一轮的攻击行动.此次"匿名者"发起代号为 #Opicarus2017 的攻击 ...

  9. 淘宝12月12日活动完成攻略

    淘宝网双十一的购物狂欢节已经结束,创下单日销售33亿的记录.但对于错过这一波,或者仍未尽兴的人们而言,对网购仍还有存在更多期待. 淘宝网市场部的陆欢透露道:淘宝12月12日活动, 淘宝双12活动由淘宝 ...

  10. 低代码指南100解决方案:38致商家:2021年双12销售订单管理攻略来了

    超长双11落下帷幕后,双12又全面开启,面对正在涌入的大量订单,商家们,你们的订单管理做到位了吗? 销售订单管理对一家企业来说至关重要,如果企业无法井然有序的管控好货品销售订单,会面临诸多问题: 1. ...

最新文章

  1. 基于ONOS的T-SDN Super控制器
  2. 建议被降级降薪员工主动辞职?网友炸了!
  3. 搭建 mysql-mmm 高可用群集
  4. python界面长什么样图片_python界面是什么样的
  5. Transformer10个重要问题
  6. VS2010下如何改变Button颜色、背景、边框
  7. C#+HtmlAgilityPack+Dapper走一波爬虫
  8. 1004. Counting Leaves (30)
  9. NFS环境搭建测试 保证挂载重启后不丢失
  10. Thymeleaf 的使用
  11. sap采购申请自动转采购订单_SAP idoc功能够强大: 采购订单修改自动触发销售订单修改...
  12. MacOSX 下.app支持同时运行多个实例
  13. 【趣闻】清华大学大一的英文原版线性代数教材里居然出现了Python
  14. python-docx库读写word文档
  15. 从上海租房之旅得到的感悟
  16. Phoenix错误信息: Malformed connection url
  17. P4147 玉蟾宫 题解
  18. Nginx的简单使用,配置多前端,多端口【微信小程序+前后端分离跨域解决】
  19. JAVA中文本字符反写
  20. Hadoop实战(二) 搭建Hadoop集群

热门文章

  1. 如何让laravel框架下出现vender文件夹
  2. jsp怎样写一个Button onclick事件
  3. android 顶部弹窗,android显示通知,并在任何应用程序顶部弹出
  4. 创建型模式-建造者模式
  5. Jikes 研究虚拟机(RVM)一 设计和实现问题
  6. excel熵值法计算权重_一文讲清楚分散投资(下)——让很多人顿悟的“熵增定律”在投资中的应用...
  7. linux桌面只运行浏览器,4个Linux桌面上的轻量级图像浏览器
  8. rdt不同版本(rdt1.0,rdt2.0,rdt2.1,rdt2.2,rdt3.0)协议的特点以及发送端接收端的FSM
  9. 使用java代码打印三角形、平行四边形、菱形
  10. 紧急通知发布解决方案(互亿无线)