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...