貪婪大陸(cogs 1008)

2022-05-15 03:28:15 字數 1896 閱讀 2544

【題目描述】 

面對螞蟻們的瘋狂進攻,小ff的tower defense宣告失敗……人類被螞蟻們逼到了greed island上的乙個海灣。現在,小ff的後方是一望無際的大海,前方是變異了的超級螞蟻。 小ff還有大好前程,他可不想命喪於此, 於是他派遣手下最後一批改造scv布置地雷以阻擋螞蟻們的進攻。 

小ff最後一道防線是一條長度為n的戰壕, 小ff擁有無數多種地雷,而scv每次可以在[ l , r ]區間埋放同一種不同於之前已經埋放的地雷。 由於情況已經十萬火急,小ff在某些時候可能會詢問你在[ l' , r'] 區間內有多少種不同的地雷, 他希望你能盡快的給予答覆。 

【輸入格式】 

第一行為兩個整數n和m; n表示防線長度, m表示scv布雷次數及小ff詢問的次數總和。 

接下來有m行, 每行三個整數q,l , r; 若q=1 則表示scv在[ l , r ]這段區間布上一種地雷, 若q=2則表示小ff詢問當前[ l , r ]區間總共有多少種地雷。 

【輸出格式】 

對於小ff的每次詢問,輸出乙個答案(單獨一行),表示當前區間地雷總數。 

【輸入樣例】 

5 4 

1 1 3 

2 2 5 

1 2 4 

2 3 5 

【輸出樣例】 

1 2 

【資料範圍】 

對於30%的資料: 0<=n, m<=1000; 

對於100%的資料: 0<=n, m<=10^5.

/*

於是看了看網上的思路:當正著做沒法做出來的時候,要往反方面想,

可以求有多少地雷不在某區間,便可得出所求結果。

方法:維護某個點做過幾次區間左端點和過幾次區間右端點,當我們求

區間(x,y)中的地雷種數時,1~x-1 中做過右端點的地雷區間一定不在

(x,y)中埋有,同理,y+1~n 過左端點的地雷區間也一定不在(x,y)中埋有,所以設p為當前已埋地雷數,ans=p-rsum(1~x-1)-lson(y+1~n)。

*/#include

#include

#define lson l,m,(now<<1)

#define rson m+1,r,(now<<1|1)

#define m 100010

using

namespace

std;

int lsum[m*4],rsum[m*4

],n,m;

intread()

while(c>='

0'&&c<='9')

return num*flag;

}void lchange(int pos,int l,int r,int

now)

int m=((l+r)>>1

);

if(pos<=m)lchange(pos,lson);

else

lchange(pos,rson);

lsum[now]=lsum[now<<1]+lsum[now<<1|1];}

void rchange(int pos,int l,int r,int

now)

int m=((l+r)>>1

);

if(pos<=m)rchange(pos,lson);

else

rchange(pos,rson);

rsum[now]=rsum[now<<1]+rsum[now<<1|1];}

int lquery(int x,int y,int l,int r,int

now)

int rquery(int x,int y,int l,int r,int

now)

intmain()

else

}return0;

}

view code

cogs 1008 貪婪大陸

不要思維定視 盯著線段樹維護l r 的ans不放 顯然沒法區間合併 換一種思路 如果打暴力的話 o nm 每次詢問 掃一遍之前所有的修改 有交點則說明種數 接下來考慮如何優化 我們把每個區間看做 l,r 的座標內的點 然後查詢區間l li r l ri r內有多少點 這樣的查詢在二維座標裡不會查 反...

Cogs 1008 貪婪大陸 樹狀陣列

貪婪大陸 難度等級 時間限制 1000 ms 1 s 記憶體限制 128 mb 測試資料 10 簡單對比 輸入檔案 greedisland.in 輸出檔案 greedisland.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 試題四 貪婪大陸 題目描述 面對螞蟻們的瘋狂進攻,小ff的...

樹狀陣列 貪婪大陸

人類被螞蟻們逼到了 greed island 上的乙個海灣。現在,小 ff 的後方是一望無際的大海,前方是變異了的超 級螞蟻。小 ff 還有大好前程,他可不想命喪於此,於是他派遣手下最後一批改造 scv 布置地雷以阻擋螞蟻們的進攻。小 ff 最後一道防線是一條長度為 n 的戰壕,小 ff 擁有無數多...