對於分段樹的惰性傳播算法,我還有一些不清楚的地方。根據下面的代碼,在查詢間隔完全重疊時,更新值只會添加到父節點,並且孩子被標記爲延遲更新。但是,正如你在附圖中看到的那樣,如果更新完成了+4範圍0,1,那麼結果在兩棵樹中完全不同! (左圖:沒有惰性傳播)。 void update_tree(int node, int a, int b, int i, int j, int value) {
if(
我一直在閱讀CLRS並遇到了編寫過程Rand(a,b)的問題,它生成一個隨機使用以50%概率生成0或1的過程Rand(0,1),從而一致地隨機地在a到b之間的數字。 我曾經想過在時間如下解決方案,這是O(二): int Rand_a_b(int a,int b)
{
int i,k=0;
for(i=0;i<b-a;i++)
{
k+=Rand(0,1)