關鍵在於維護,從0節點開始左邊1右邊0,每個節點有個節點值,然後查詢的時候從頭還是乙個乙個找,如果在最優解下存在就走那個節點,否則走另外的節點。
#include#include#include#includeusing namespace std;
int nex[3200010][2];
int no[2000005];
int node;
void add(int cur,int k)
int get1(int n)
else
}return no[cur];
}int get2(int n)
else
}return no[cur];
}char c[10];
int main()
cur=nex[cur][p];
}no[cur]=m;
}else if(c[2]=='i')
else}}
return 0;
}
AcDream 1081 平衡樹 Tire樹
題意 有這樣的乙個需求,乙個程式能夠動態的插入數字,並且能夠以很快的速度給出乙個數字在已有的數字集合中異或之後值的最大或者是最小值。解法 將插入的數構成一棵字典樹,然後將每乙個數字以貪心的思想去匹配,如果乙個數字為1010,要求與它異或之後值的最小值,只需要在為1的地方優先匹配1,為0的地方優先匹配...
AcDream 1084 同心樹 幾何
題意 下圖給定邊長l和旋轉角度a,求重疊之後的面積。解法 由於紫色的角已知是45度,加上a已知,可以推出phi等於a,設紅色邊長度為x,有x x cos a x sin a l,根據公式得到x l 1 cos a cos a 由於四個多出來三角形面積和形狀都相同,因此重合的面積為l l 1 2 x ...
AcDream 1084 同心樹 幾何
題意 下圖給定邊長l和旋轉角度a,求重疊之後的面積。解法 由於紫色的角已知是45度,加上a已知,可以推出phi等於a,設紅色邊長度為x,有x x cos a x sin a l,根據公式得到x l 1 cos a cos a 由於四個多出來三角形面積和形狀都相同,因此重合的面積為l l 1 2 x ...