Luogu P3391 [テンプレート]文学バランスの取れたツリースプレイバランスの取れたツリー

https://www.luogu.org/problemnew/show/P3391

トレーニングボードを書き換える前にタイトル書かれた説明を取得。trueにwdnmd「==」「=」はコンパイラエラー聖歌書き込まれません。

#include <ビット/ STDC ++ H> 
名前空間STDを使用して、
const int型MAXN = 100010; 
N INT、M、RT = 0、C [MAXN] [2] = {}、FAは[MAXN] = {} = {} [MAXN]リバース、= {} [MAXN] SIZ。
インラインボイド押し上げ(INT X){ 
	SIZ [X] = SIZ [[x]は[C 0] + SIZ [C [X] [1]] + 1。
} 
ボイドプッシュダウン(INT X){ 
	IF(REV [X]){ 
		スワップ(C [X] [0]、C [X] [1])。
		REV [C [X] [0]] ^ = 1; REV [C [X] [1] ^ = 1; REV [X] = 0; 
	} 
} 
ボイドビルド(int型のx、int型、L、R INT){ 
	IF(L> R)のリターン; 
	IF(L == R){ 
		FA [L] = xと; SIZ [L] = 1。
		(lは<X)C [X] [0] L =あれば、
		他[X] [1] L = C。
		返します。
	} 
	INT半ば=(L + R)/ 2。
	(MID、L、ミッド1)を構築;(MID、ミッド+ 1、r)を構築します。
	IF(中間<X)C [X] [0] =ミッド。
	他[X] [1] =ミッドC。
	FA [中間] = xで、押上(MID)。
} 
ボイド腐敗(INT X、INT&K){ 
	int型PA = FA [X]、GPA、L、R、GPA = FA [PA]。
	(x == C [PA] [0])、L = 0の場合。
	そうでなければ、L = 1。R = L ^ 1。
	IF(!PA = K){ 
		(C [GPA] [0] == PA)C [GPA] [0] = xであれば、
		他C [GPA] [1] = xと; 
	}他のk = xと; 
	FA [X] = GPA; FA [PA] = xと; FA = PA [X] [R] C]。
	C [PA] [L] = Cを[X] [R]、C [X] [R] = PA。
	突き上げ(PA)。突き上げ(X)。
} 
/ *ボイドDFS(INT X){ 
	IF(X == 0)のリターン; 
	COUT << X << C [X] [0] << C [X] [1] << ENDL。
	DFS(C [X] [0])。
	DFS(C [X] [1])。
} * / 
ボイドスプレイ(INT X、INT&K){ 
	一方(X = K!){ 
		int型PA = FA [X]; int型のGPA = FA [PA]。
		IF(PA!= K){
			IF((C [GPA] [1] == PA)^(C [PA] [1] == x))を腐敗(X、K)。
			他の腐敗(PA、K);
		}腐敗(X、K)。
		// DFS(RT); coutの<<てendl; 
	} 
} 
int型(int型V、INT X){見つける
	プッシュダウン(X)。
	IF(V == SIZ [C [x]は[0] + 1)リターンX。
	他の場合(V <SIZ + 1 [X] [0] C])戻り検索(V、C [X] [0])。
	他戻り検索(V-SIZ [X] [0] C] - 1、C [X] [1])。
} 
ボイドMREV(int型のL、R INT){ 
	int型のx =検索(L、RT)、Y =(R + 2、RT)を見つけます。
	// COUT << X << Y << ENDL。
	スプレイ(X、RT)、スプレイ(Y、C [X] [1])。
	// COUT << SIZ [Y] << ENDL。
	REV [C [Y] [0]] ^ = 1; 
} 
int型のmain(){ 
	scanf関数( "%D%dの"、&N、&M)。
	(0,1、N + 2)を構築; RT =(3 + N)/ 2。
	以下のために(INT I = 1; I <= M; ++ I){ 
		int型のX、Y。
		scanf関数(」
		(X = Y!)場合MREV(X、Y)
	} 
	(i = 1をint型、iが<= N; I ++)のために{
		printf( "%dの"、検索(I + 1、RT)-1)。
	} COUT << ENDL。
	0を返します。
}

  

おすすめ

転載: www.cnblogs.com/137shoebills/p/11074285.html