題解:
線段樹或者樹狀陣列都可以。
對於詢問l-r之間有多少地雷,可以理解為首部在r之前的線段段數減去尾部在(r-1)之前的線段段數,所以對於埋地雷的操作l-r,可以理解為在兩個線段樹上的某個位置加一,詢問相當於是求每個線段樹的前若干個位置的總和是多少,然後兩個線段樹求出來的答案再進行相減操作就是答案,對於這種單點修改、區間詢問的型別,用樹狀陣列會非常方便。
注:當然樹狀陣列也可以處理區間修改,單點詢問的題目,轉化成差分即可。
#include
int n,op,x,y,m;
int a[
110000
],b[
110000];
intlowbit
(int p)
void
add1
(int p)
}void
add2
(int p)
}int
query1
(int p)
return sum;
}int
query2
(int p)
return sum;
}int
main()
return0;
}
luogu2184 貪婪大陸(樹狀陣列)
我是超連結 這道題看著好眼熟啊 看上去很複雜,實際上就是樹狀陣列的基本操作 單點修改區間查詢 單點新增值,查詢時兩個區間相減就ok,但這個題是1為左區間,所以不用減 原因?答案實際上就是 1,r 的左端點數 1,l 1 的右端點數 include using namespace std int n,...
luogu 2184 貪婪大陸 樹狀陣列
面對螞蟻們的瘋狂進攻,小ff的tower defence宣告失敗 人類被螞蟻們逼到了greed island上的乙個海灣。現在,小ff的後方是一望無際的大海,前方是變異了的超級螞蟻。小ff還有大好前程,他可不想命喪於此,於是他派遣手下最後一批改造scv布置地雷以阻擋螞蟻們的進攻。小ff最後一道防線是...
學術篇 luogu2184貪婪大陸
題目在這裡哦,戳一下就可以了 題目大意 支援兩種操作,區間新增一種新元素,查詢區間顏色種數.題目標籤是線段樹啊,我也本來想寫乙個線段樹,後來寫不出來 我太弱了orz 然後就草率地看了看題解裡面的思路咯,感覺思路非常的不錯,於是我就a掉這題之後寫了這篇blog 我們通過這幅圖可以看到 我們直接統計區間...