解題思路:
兩棵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...