Color the ball( 分塊模板 )

2021-09-25 16:05:06 字數 1200 閱讀 4736

color the ball(分塊1) 

n個氣球排成一排,從左到右依次編號為1,2,3....n.每次給定2個整數a b(a <= b),lele便為騎上他的「小飛鴿"牌電動車從氣球a開始到氣球b依次給每個氣球塗一次顏色。但是n次以後lele已經忘記了第i個氣球已經塗過幾次顏色了,你能幫他算出每個氣球被塗過幾次顏色嗎?

input

每個測試例項第一行為乙個整數n,(n <= 100000).接下來的n行,每行包括2個整數a b(1 <= a <= b <= n)。 

當n = 0,輸入結束。

output

每個測試例項輸出一行,包括n個整數,第i個數代表第i個氣球總共被塗色的次數。

sample input

3

1 12 2

3 33

1 11 2

1 30

sample output

1 1 1

3 2 1

**:

#include #include #include using namespace std;

const int maxn = 100008;

int a[maxn]; // 初始a

int belong[maxn]; // 第i個屬於哪一塊

int lazy[maxn]; // lazy延遲更新

int sum[maxn]; // 存塊的總值

int l[maxn],r[maxn]; // 存塊的左右邊界

int n,num;

void built()

for ( int i=1; i<=num; i++ )

r[num] = n;

for ( int i=1; i<=n; i++ )

}void update( int l, int r )

}else

for ( i=belong[l]+1; i>n && n )

for ( int i=1; icout << a[n]+lazy[belong[n]] << endl;

}return 0;

}

樹狀陣列 Color the ball

n個氣球排成一排,從左到右依次編號為1,2,3.n.每次給定2個整數a b a b lele便為騎上他的 小飛鴿 牌電動車從氣球a開始到氣球b依次給每個氣球塗一次顏色。但是n次以後lele已經忘記了第i個氣球已經塗過幾次顏色了,你能幫他算出每個氣球被塗過幾次顏色嗎?input 每個測試例項第一行為乙...

樹狀陣列 Color the ball

n個氣球排成一排,從左到右依次編號為1,2,3.n.每次給定2個整數a b a b lele便為騎上他的 小飛鴿 牌電動車從氣球a開始到氣球b依次給每個氣球塗一次顏色。但是n次以後lele已經忘記了第i個氣球已經塗過幾次顏色了,你能幫他算出每個氣球被塗過幾次顏色嗎?input 每個測試例項第一行為乙...

bzoj2956 模積和 (分塊)

原題位址 題意 求 n mod i m mod j 其中1 i n,1 j m,i j。答案 mod 19940417 資料範圍 n,m 10 9 題解 n i 1 mj 1 nm odi mm odj i j ni 1 mj 1 nmod i mmod j min n,m i 1 nm odi m...