校門外的樹 資料結構

2021-10-08 14:21:34 字數 1146 閱讀 3102

f. 校門外的樹

記憶體限制:512 mib

時間限制:1000 ms

標準輸入輸出

題目型別:傳統

評測方式:文字比較

題目描述

原題來自:vijos p1448

輸入格式

第一行 表示道路總長為 ,共有 個操作;

接下來 行為 個操作。

輸出格式

對於每個 輸出乙個答案。

樣例樣例輸入

5 41 1 3

2 2 5

1 2 4

2 3 5

樣例輸出12

資料範圍與提示

對於 的資料,;

對於 的資料,;

對於 的資料,,保證 。

1.首先第一反應肯定是,區間修改,區間查詢。不過這是修改,但輸出就解決不了,所以,肯定要換乙個思路

2.定義兩個陣列,suml[i]表示i之前的left端點,sumr[i]表示i之前的right端點

仔細一想,會發現

1.suml[i]表示,i之前一共包含多少種樹

2.sumr[i]表示,i之前一共有多少完整的區間

所以,ans=suml[r]-sumr[l-1];

#include #include #include using namespace std;

long long int n,m;

long long int a[1000005];

long long int lsh[1000005];

long long int bit[1000005][2];

int pd;

long long l,r;

long long int lowbit(long long x)

void update(long long k,long long x,int f)

}long long sum(long long k,int f)

return ans;

}/*void read(long long &x)

s=getchar();

} while(s>='0'&&s<='9')

x*=f;

}*/int main()

else

}}

校門外的樹

描述 某校大門外長度為 l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是 1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸 0的位置,另一端在 l的位置 數軸上的每個整數點,即0,1,2 l,都種有一棵樹。馬路上有一些區域要用來建地鐵,這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起...

校門外的樹

某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止...

校門外的樹

校門外的樹 題目描述 某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知...