2019牛客夏休み多校訓練キャンプ(第一回)、A題(デカルトの木)
913 ワード
この二つのデカルトの木はkey=1から同格になる最大の子木を求めます.コードは以下の通りです
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=1e5+5;
int a[maxn],b[maxn],n;
int f1[maxn],l1[maxn],r1[maxn],root1;
int f2[maxn],l2[maxn],r2[maxn],root2;
int build(int *arr,int *f,int *l,int *r)
{
for(int i=1;i<=n;++i) f[i]=l[i]=r[i]=0;
stack st;
int rt,last;
for(int i=1;i<=n;++i)
{
last=0;
while(!st.empty())
{
if(arr[st.top()]
TIPS:デカルトの木とテーマの性質によって、柔軟に同じ構成の条件を見つけます.