luoguP2184 貪婪大陸

2022-05-07 19:48:09 字數 735 閱讀 4031

當詢問區間\([l,r]\)中地雷種類數時,我們只需要用\(r\)前面的區間開頭數量減去\(l\)前面的區間結尾數量即可.

原因很簡單.

對於詢問區間\([l,r]\),我們要求它與先前埋下的地雷區間有交的區間數量,所以只要區間\([l,r]\)的\(l去掉不合法的\(r即滿足要求.

所以這個題我們可以使用兩個樹狀陣列來解決.

\(tree[0]\)維護位置\(x\)之前的區間結尾的數量.

\(tree[1]\)維護位置\(x\)之前的區間開頭的數量.

答案即為\(a[1][r]-a[0][l-1]\).

#pragma gcc optimize(3)

#include#define il inline

#define rg register

#define gi readusing namespace std;

typedef long long ll;

const int o = 1e5 + 10;

il int lowbit(int x)

templateil tt read()

int n, m, tr[2][o << 1];

il void modify(int x, int type)

il int query(int x, int type)

int main()

return 0;

}

luogu P2184 貪婪大陸

題目傳送門 233333 本題由萌萌噠的我的同桌推薦 woc為毛bzoj自爆了 詢問區間 l,r 就是求出l點此時的地雷數 l 1,r 中新加的地雷數 l點地雷數 1,l 的左端點數減去 1,l 1 的右端點數 l 1,r 中新加的地雷數 l 1,r 的左端點數 所以詢問 l,r 就是 1,r 的左...

luogu P2184 貪婪大陸

嘟嘟嘟 這真是一道好題啊 看起來覺得似曾相識,但就是想不出來區間怎麼合併,最後還是聽lbg巨佬講的 高能演算法 連線段樹都不用,樹狀陣列就行了。對於修改區間 l,r 分別用樹狀陣列cl,cr維護l和r的字首和。統計的時候就是cl r cr l 1 理解起來就是先找出所有在r之前被修改的區間,然後在減...

luoguP2184 貪婪大陸 題解 樹狀陣列

p2184 貪婪大陸 題目 其實很容易理解就是詢問一段區間內有多少段不同的區間 然後再仔細思索一下會發現 1.只要乙個區間的開頭在乙個節點i的左邊,那麼這個區間包含在區間1 i中。2.只要乙個區間的尾部在乙個節點j的左邊,那麼這個區間肯定不屬於j之後的所有區間 這時候就不難想到用兩個樹狀陣列維護 第...