`

2022/6/16 23:20:08

本文主要是介绍`,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#include <stdio.h>
enum {
	the_size = 100010
};
class FIBO_TREE {
	private : 
		struct TREE {
			int lid, rid, pid;
			int key;
			int cnt;
		} tree[the_size];
		int ROOT, tot;
		int stk[the_size], top;
		#define lid(id) tree[id].lid
		#define rid(id) tree[id].rid
		#define pid(id) tree[id].pid
		void ph(int id) {
			if(top == 3) {
				if(rid(stk[top-1]) == stk[top]&&rid(stk[top-2]) == stk[top-1]) {
					if(!lid(stk[top-2])&&!lid(stk[top-1])) {
						lid(stk[top-1]) = stk[top-2];
						stk[top-2] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				} else if(lid(stk[top-1]) == stk[top]&&lid(stk[top-2]) == stk[top-1]) {
					if(!rid(stk[top-2])&&!rid(stk[top-1])) {
						rid(stk[top-1]) = stk[top-2];
						stk[top-2] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				}
			}
			if(top > 3) {
				if(rid(stk[top-1]) == stk[top]&&rid(stk[top-2]) == stk[top-1]) {
					if(!lid(stk[top-2])&&!lid(stk[top-1])) {
						if(stk[top-2] == lid(stk[top-3])) 
							lid(stk[top-3]) = stk[top-1];
						else 
							rid(stk[top-3]) = stk[top-1];
						lid(stk[top-1]) = stk[top-2];
						stk[top-2] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				} else if(lid(stk[top-1]) == stk[top]&&lid(stk[top-2]) == stk[top-1]) {
					if(!rid(stk[top-2])&&!rid(stk[top-1])) {
						if(stk[top-2] == lid(stk[top-3])) 
							lid(stk[top-3]) = stk[top-1];
						else 
							rid(stk[top-3]) = stk[top-1];
						rid(stk[top-1]) = stk[top-2];
						stk[top-2] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				}
			}
			if(top == 4) {
				if(lid(stk[top-3]) == stk[top-2]&&rid(stk[top-2]) == stk[top-1]&&lid(stk[top-1]) == stk[top]) {
					if(!rid(stk[top-1])) {
						lid(stk[top-1]) = stk[top-2];
						rid(stk[top-1]) = stk[top-3];
						rid(stk[top-2]) = stk[top];
						lid(stk[top-3]) = 0;
						stk[top-3] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				} else if(rid(stk[top-3]) == stk[top-2]&&lid(stk[top-2]) == stk[top-1]&&rid(stk[top-1]) == stk[top]) {
					if(!lid(stk[top-1])) {
						rid(stk[top-1]) = stk[top-2];
						lid(stk[top-1]) = stk[top-3];
						lid(stk[top-2]) = stk[top];
						rid(stk[top-3]) = 0;
						stk[top-3] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				}
			}
			if(top > 4) {
				if(lid(stk[top-3]) == stk[top-2]&&rid(stk[top-2]) == stk[top-1]&&lid(stk[top-1]) == stk[top]) {
					if(!rid(stk[top-1])) {
						if(lid(stk[top-4]) == stk[top-3]) 
							
						lid(stk[top-1]) = stk[top-2];
						rid(stk[top-1]) = stk[top-3];
						rid(stk[top-2]) = stk[top];
						lid(stk[top-3]) = 0;
						stk[top-3] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				} else if(rid(stk[top-3]) == stk[top-2]&&lid(stk[top-2]) == stk[top-1]&&rid(stk[top-1]) == stk[top]) {
					if(!lid(stk[top-1])) {
						rid(stk[top-1]) = stk[top-2];
						lid(stk[top-1]) = stk[top-3];
						lid(stk[top-2]) = stk[top];
						rid(stk[top-3]) = 0;
						stk[top-3] = stk[top-1];
						stk[top-1] = stk[top];
						top--;
					}
				}
			}
		}
};
signed main() {
	
}


这篇关于`的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程