線段樹練習四

2021-08-08 04:35:32 字數 849 閱讀 7813

輸入輸出解釋:

第一行兩個數n,m

表示長度為n的線段

接下來的m行讀入x,y

表示在[x,y]的區間中加入一條線段

最後一行兩個數x,y

輸出x到y這乙個區間中的線段數

保證x+1=y

樣例輸入 :

7 5

2 3

2 5

2 4

4 5

2 4

2 4

樣例輸出:

3 做法:

當某線段能夠完整覆蓋某個結點所對應的區間時,則不再二分。因此要統計某個單位區間上重疊的線段總數,必須把從葉結點到根結點路徑上所有結點的count域累加

**如下:

#include 

#include

#include

using namespace std;

int c[500000],n,m,e=0;

void insert(int t,int l,int r,int a,int b)

else

}}void find(int t,int l,int r,int a,int b)

else

}}int count(int t)

return sum;

}int main()

scanf("%d

%d",&x,&y);

find(1,1,n,x,y);

int ans=count(e);

printf("%d",ans);

}

線段樹練習四(線段樹)

description 在平面內有一條長度為n的線段 不計入答案 可以對進行以下2種操作 1 把從x到y的再加一條線段 2 查詢從x到x 1有多少條線段 input 第一行輸入n,m 第2 m 1行,每行2個數x,y,表示從x到y再加一條線段 最後一行輸入2個數,為x和x 1,查詢x到x 1的線段數...

線段樹 SSLOJ 2647 線段樹練習四

ssl oj ssloj sslo j2647 2647 2647 在平面內有一條長度為n的線段 也算一條線段 可以對進行以下2種操作 1 x y 把從x到y的再加一條線段 2 x 查詢從x到x 1有多少條線段 第一行輸入n,m 第2 m 1行,每行3個數 對於每個查詢操作,輸出線段數目 7 2 2...

2647 線段樹題練習四

x軸上有若干條不同線段,問某個單位區間 x,x 1 上重疊了多少條線段?區間大小不超過100000 每行表示一條線段x,y 最後一行表示x,x 1 題庫上的輸入樣例和資料的輸入完全不同!只好用eoln來讀入,而且資料中會出現x y!最後打出乙個線段樹 每乙個區間記錄乙個c,表示這整個區間有多少條線段...