樹狀陣列 H千萬別用樹套樹

2022-05-10 02:31:46 字數 1414 閱讀 3756

解題思路:

兩棵bit分別存線段的開始點和結束點

兩個陣列存開始點和結束點的線段數量

針對每次詢問

用匯流排段數 - 區間右邊的線段(結尾小於等於x) - 區間左邊的線段(開頭大於等於x) - 當前線段內被完全包含 - 開頭結尾在當前區間內即為答案

/*

zeolim - an ac a day keeps the bug away

*/

//#pragma gcc optimize(2)

//#pragma gcc ("-w1,--stack=128000000")

#include using namespace std;

#define mp(x, y) make_pair(x, y)

#define fr(x, y, z) for(int x = y; x < z; ++x)

#define fi(x, n) fill(x, x + n + 10, 0)

typedef long long ll;

typedef unsigned long long ull;

typedef double ld;

typedef std::pair pii;

typedef std::vector vi;

//typedef __int128 ill;

const ld pi = acos(-1.0);

const ld e = exp(1.0);

const ll inf = 0x3f3f3f3f3f3f3f3f;

const ll mod = 386910137;

const ull p = 13331;

const int maxn = 1e5 + 100;

struct bit

bit(int n)

int lowbit(int x)

void update(int pos, ll val)

ll ask(int pos)

}; int t[maxn], t1[maxn], t2[maxn];

int b[maxn], e[maxn];

int main()

else

else if(x + 1 == y)

else

cout << ans << '\n';}}

}return 0;}

/*5 91 1 3

1 2 4

1 3 5

1 2 2

1 3 3

1 4 4

1 3 4

1 4 5

2 3 3

*/

樹狀陣列 千萬別用樹套樹

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k special judge,64bit io format lld 題目描述 bobo 精通資料結構!他想維護乙個線段的集合 s。初始時,s 為空。他會依次進行 q 次操作,操作有 2 種。輸入檔案包含多組資...

csu2170千萬別用樹套樹

千萬別用樹套樹 bobo 精通資料結構!他想維護乙個線段的集合 s。初始時,s 為空。他會依次進行 q 次操作,操作有 2 種。幫 bobo 求出每次詢問的答案。輸入檔案包含多組資料,請處理到檔案結束。每組資料的第一行包含 2 個整數 n 和 q.其中 n 表示操作中 r 的最大值。接下來 q 行中...

2018湖南省賽H 千萬別用樹套樹(線段樹 思維)

bobo 精通資料結構!他想維護乙個線段的集合 s。初始時,s 為空。他會依次進行 q 次操作,操作有 2 種。型別 1 給出 l,r,向集合 s 中插入線段 l,r 型別 2 給出 l,r,詢問滿足 x,y s x,y in s x,y s 且 x l r yx leq l leq r leq y...