要離線來做。
考慮最後一遍是按樹的編號順序一遍掃過。
所以就是要先把兩棵樹之間要改變的資訊都維護出來。
這道題是對生長節點建出乙個虛點。
就可以在多棵樹上同時連邊。
#include
using
namespace
std;
const
int n = 404040;
inline
char get(void)
return *s++;
}inline
void read(int &x)
struct node *null;
struct node
inline
void pushup(void)
inline
void pushdown(void)
}inline
void new(int k)
};node *p;
node mem[1];
node t[n];
int n, m, opt, x, y, z, c1, cnt, lst, ocnt;
int l[n], r[n], to[n];
int ans[n];
struct option
inline
friend
bool
operator
<(const option &a, const option &b)
};option q[n];
inline
bool isroot(node *x)
inline
void rotate(node *x)
x->fa = z; y->fa = x; x->ch[r]->fa = y;
y->ch[l] = x->ch[r]; x->ch[r] = y;
y->pushup(); x->pushup();
}inline
void down(node *x)
inline
void splay(node *x)
rotate(x);
}}inline node *access(node *x)
return y;
}inline
void makeroot(node *x)
inline
void link(node *x, node *y)
inline
void cut(node *x, node *y)
inline
void cut(node *x)
void init(void)
int main(void) else
if (opt == 1)
} else
}for (int i = 1; i <= m; i++) ans[i] = -1;
sort(q + 1, q + ocnt + 1);
for (int i = 1, p1 = 1; i <= m; i++)
for (; p1 <= ocnt && q[p1].pos == i; p1++) else
}for (int i = 1; i <= m; i++)
if (~ans[i]) printf("%d\n", ans[i]);
return
0;}
帶有風的詩詞 帶有風字的詩句
帶有風字的詩句 1 昨夜秋風入漢關,朔雲邊月滿西山。嚴武 軍城早秋 2 夜來風雨聲,花落知多少。孟浩然 春曉 3 相見時難別亦難,東風無力百花殘。李商隱 無題 4 古道西風瘦馬,夕陽西下,斷腸人在天涯。馬致遠 天淨沙 秋思 5 大風起兮雲飛揚。劉邦 大風歌 6 忽如一夜春風來,千樹萬樹梨花開。岑參 ...
帶有驗證的soap webservice
這次介紹的是android呼叫.net的帶soapheader的webservice,布局檔案很簡單就乙個button,網上有很多教程講了android怎麼呼叫webservice,好像帶soapheader的很少 好吧。那就開始吧。首先我們需要乙個jar檔案 可以去網上搜ksoap2,我這裡用的是...
帶有繼承的Lombok Builder
3。superbuilder 和繼承 4。結論 lombok庫提供了一種無需編寫任何樣板 即可實現 builder pattern的好方法 builder https projectlombok.org features builder 注釋。在這個簡短的教程中,我們將專門學習涉及繼承時如何處理 b...