日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2025/4/16 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UOJ【UR #12】实验室外的攻防战 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:

  給出一個(gè)排列$A$,問是否能夠經(jīng)過以下若干次變換變?yōu)榕帕?B$

    變換:若${A_i> A_i+1}$,可以${swap(A_i,A_i+1)}$


  考慮一個(gè)數(shù)字從A排列到B排列連出來的路徑與其他數(shù)字是否相交,相交就表示大小關(guān)系需要判斷,(類似于二維偏序)用線段樹維護(hù)區(qū)間最小值即可。

?

  

?

  權(quán)值為1,2的線分別與權(quán)值為4的線相交,而且4在它們左邊,所以需要判斷它們的大小關(guān)系,發(fā)現(xiàn)${4>1}$,${4>2}$,所以滿足條件。


1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<cstdlib> 6 #include<cmath> 7 #include<cstring> 8 using namespace std; 9 #define maxn 20000010 10 #define MAXN 2000100 11 #define llg int 12 #define inf 0x7fffffff 13 #define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout); 14 llg n,m,minl[maxn],a[MAXN],c[MAXN],rank[MAXN]; 15 16 llg min_(llg o,llg l,llg r,llg L,llg R) 17 { 18 if (l>=L && r<=R) 19 { 20 return minl[o]; 21 } 22 llg lc=o<<1,rc=o<<1|1,mid=(l+r)>>1; 23 llg ans=inf; 24 if (L<=mid) ans=min(ans,min_(lc,l,mid,L,R)); 25 if (R>mid) ans=min(ans,min_(rc,mid+1,r,L,R)); 26 return ans; 27 } 28 29 void add(llg o,llg l,llg r,llg wz,llg val) 30 { 31 if (l==r) 32 { 33 minl[o]=val; 34 return ; 35 } 36 llg lc=o<<1,rc=o<<1|1,mid=(l+r)>>1; 37 if (wz<=mid) add(lc,l,mid,wz,val); 38 if (wz>mid) add(rc,mid+1,r,wz,val); 39 minl[o]=min(minl[lc],minl[rc]); 40 } 41 inline int getint() 42 { 43 int w=0,q=0; 44 char c=getchar(); 45 while((c<'0' || c>'9') && c!='-') c=getchar(); 46 if (c=='-') q=1, c=getchar(); 47 while (c>='0' && c<='9') w=w*10+c-'0', c=getchar(); 48 return q ? -w : w; 49 } 50 int main() 51 { 52 //yyj("C"); 53 cin>>n; 54 for (llg i=1;i<=n;i++) a[i]=getint(); 55 for (llg i=1;i<=n;i++) c[i]=getint(); 56 for (llg i=1;i<=n;i++) rank[c[i]]=i; 57 for (llg i=1;i<=20000000;i++) minl[i]=inf; 58 for (llg i=1;i<=n;i++) 59 { 60 llg x=rank[a[i]]; 61 llg v=min_(1,1,n,x,n); 62 if (a[i]>v) {cout<<"NO"; return 0;} 63 add(1,1,n,x,a[i]); 64 } 65 cout<<"YES"; 66 return 0; 67 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/Dragon-Light/p/6376947.html

總結(jié)

以上是生活随笔為你收集整理的UOJ【UR #12】实验室外的攻防战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。