UOJ 180【UR #12】实验室外的攻防战
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 = ;
int n;
inline int read() {
int x=,f=;
char c=getchar();
while(c<''||c>'') {
if(c=='-')f=-;c=getchar() ;
}
while(c<=''&&c>='')x=x*+c-'',c=getchar();
return x*f;
}
int a[maxn],b[maxn];
int pos[maxn];
int minn[(maxn<<)+] ;
void merge(int rt) {
minn[rt]=min(minn[rt<<],minn[rt<<|]);
}
void build(int l,int r,int rt) {
if(l==r) {
minn[rt]=a[l];return;
}
int mid = l+r>>;
build(l,mid,rt<<);
build(mid+,r,rt<<|);
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>>;
int ans=INF;
if(tl<=mid) ans=min(ans,query(l,mid,rt<<,tl,tr));
if(tr>mid) ans=min(ans,query(mid+,r,rt<<|,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>>;
if(mid>=pos)modify(l,mid,rt<<,pos);
else if(mid<pos)modify(mid+,r,rt<<|,pos);
merge(rt);
}
int main() {
n=read();
for(int i=;i<=n;++i) a[i]=read(),pos[a[i]]=i;
for(int i=;i<=n;++i) b[i]=read();
build(,n,);
for(int i=;i<=n;++i) {
//if(a[i]!=b[i]) {
int p=pos[b[i]];
int tmp=query(,n,,,p);
if(tmp<b[i]) {
cout<<"NO"<<std::endl;return ;
}
else modify(,n,,p);
// }
}
cout<<"YES"<<std::endl;
return ;
}
UOJ 180【UR #12】实验室外的攻防战的更多相关文章
- 实验室外的攻防战 UOJ#180 [树状数组]
实验室外的攻防战 UOJ#180 [树状数组] 题目 时针指向午夜十二点,约定的日子--2月28日终于到来了.随着一声枪响,伏特跳蚤国王率领着他的跳蚤大军们包围了 \(picks\) 博士所在的实验室 ...
- 学长小清新题表之UOJ 180.实验室外的攻防战
学长小清新题表之UOJ 180.实验室外的攻防战 题目描述 时针指向午夜十二点,约定的日子--\(2\)月\(28\)日终于到来了.随着一声枪响,伏特跳蚤国王率领着他的跳蚤大军们包围了 \(picks ...
- UOJ【UR #12】实验室外的攻防战
题意: 给出一个排列$A$,问是否能够经过以下若干次变换变为排列$B$ 变换:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$ 考虑一个数字从A排列到B排列连出来的路径 ...
- 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组
题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 ...
- 【UR #12】实验室外的攻防战(BIT)
[题目链接] http://uoj.ac/problem/180 [题意] 给定两个1..n的排列AB,只有当ai<ai+1才能交换ai和ai+1,问是否能够将A转换为B. [思路] 令a[i] ...
- UOJ180 【UR #12】实验室外的攻防战
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- 【UR #12】实验室外的攻防战
UOJ小清新题表 题目内容 依然没有粘题面主要是UOJ的题面都太长了qwq UOJ链接 一句话题意:给出两个序列 \(A\) 和 \(B\),对于 \(A\) 进行若干次操作,每次给出一个 \(i\) ...
- Android安全攻防战,反编译与混淆技术完全解析(下)
在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...
- Android安全攻防战,反编译与混淆技术完全解析(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...
随机推荐
- selenium IDE录制
一. 安装 可以用Firefox打开https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/,在这里边找到和当前firef ...
- tomcat运行solr
https://blog.csdn.net/u010346953/article/details/67640036
- 查看Linux系统用户登录日志
日志: /var/log/wtmp说明: 此文件是二进制文件,查看方法如下:该日志文件永久记录每个用户登录.注销及系统的启动.停机的事件.因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加 ...
- [译]16-spring基于注解的配置元数据
从spring2.5起spring框架开始支持java注解的配置元数据.所以除了使用xml配置文件来描述bean的装配之外,你还 可以使用基于java注解的配置元数据来完成同样的功能. spring框 ...
- 孤荷凌寒自学python第二十二天python类的继承
孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...
- 条件随机场(Conditional random field)
条件随机场真是把我给折磨坏了啊,本以为一本小小的<统计学习方法>攻坚剩下最后一章,心情还是十分愉悦的,打算一口气把它看完,结果真正啃起来真是无比的艰难啊,每一句对我都好像是天书一般,怎么这 ...
- iOS大神班笔记01-项目中常见的文件
1.Info.plist文件:项目配置文件 主要作用:保存应用的信息,软件名称等等,相当于身份 证.程序加载首先加载配置文件,读取软件名称等信息. Bundle display name:项目名称 B ...
- 【bzoj2212】[Poi2011]Tree Rotations 权值线段树合并
原文地址:http://www.cnblogs.com/GXZlegend/p/6826614.html 题目描述 Byteasar the gardener is growing a rare tr ...
- Codeforces 585D Lizard Era: Beginning | 折半搜索
参考这个博客 #include<cstdio> #include<algorithm> #include<cstring> #include<map> ...
- BZOJ4826 [Hnoi2017]影魔 【线段树 + 单调栈】
题目链接 BZOJ4826 题解 蒟蒻智力水平捉急orz 我们会发现相邻的\(i\)和\(j\)贡献一定是\(p1\),可以很快算出来[然而我一开始忘了考虑调了半天] 我们现在只考虑不相邻的 我们只需 ...