1191 數軸染色

2022-05-13 13:01:28 字數 1589 閱讀 6091

時間限制: 1 s

空間限制: 128000 kb

題目等級 : ** gold

在一條數軸上有n個點,分別是1~n。一開始所有的點都被染成黑色。接著

我們進行m次操作,第i次操作將[li,ri]這些點染成白色。請輸出每個操作執行後

剩餘黑色點的個數。

輸入描述

input description

輸入一行為n和m。下面m行每行兩個數li、ri

輸出描述

output description

輸出m行,為每次操作後剩餘黑色點的個數。

樣例輸入

sample input

10 3

3 35 7

2 8

樣例輸出

sample output96

3

資料範圍及提示

data size & hint

資料限制

對30%的資料有1<=n<=2000,1<=m<=2000

對100%資料有1<=li<=ri<=n<=200000,1<=m<=200000

分類標籤#br

裸的線段樹。

一定要記住如果整個區間都是0了一定要return

啊啊啊啊啊啊啊啊啊啊

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

int maxn=200001;7

void read(int &n)812

while(c>='

0'&&c<='9'

)13

14 flag==1?n=-x:n=x;15}

16int

n,m;

17struct

node

18tree[maxn*4

];21

void update(int

k)22

25void build_tree(int ll,int rr,int

k)26

34int mid=(ll+rr)>>1

;35 build_tree(ll,mid,k<<1

);36 build_tree(mid+1,rr,k<<1|1

);37

update(k);38}

39void interval_change(int k,int ql,int

qr)40

48int mid=(tree[k].l+tree[k].r)>>1;49

if(ql<=mid)

50 interval_change(k<<1

,ql,qr);

51if(qr>mid)

52 interval_change(k<<1|1

,ql,qr);

53update(k);54}

55int

main()

5666

return0;

67 }

codevs1191 數軸染色

題目描述 description 在一條數軸上有n個點,分別是1 n。一開始所有的點都被染成黑色。接著 我們進行m次操作,第i次操作將 li,ri 這些點染成白色。請輸出每個操作執行後 剩餘黑色點的個數。輸入描述 input description 輸入一行為n和m。下面m行每行兩個數li ri 輸...

codevs 1191 數軸染色

1191 數軸染色 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解檢視執行結果 題目描述 description 在一條數軸上有n個點,分別是1 n。一開始所有的點都被染成黑色。接著 我們進行m次操作,第i次操作將 li,ri 這些點染成白色。請輸出每個操作執行後 剩餘黑色...

CODE VS 1191 數軸染色

題目描述 description 在一條數軸上有 n個點,分別是1 n。一開始所有的點都被染成黑色。接著 我們進行 m次操作,第 i次操作將 li,ri 這些點染成白色。請輸出每個操作執行後 剩餘黑色點的個數。輸入描述 input description 輸入一行為n和 m。下面 m行每行兩個數li...