Hdu5480 Conturbatio 區間求和

2021-09-25 19:58:11 字數 749 閱讀 7906

題意:

在乙個棋盤上有一些"車",他能夠攻擊到與它同一行或者同一列的棋盤上的所有的格仔,現在給出k個棋子的座標,然後有q組詢問,每一次詢問(x1,y1,x2,y2)這個方格內的所有棋子是否能夠全部被攻擊到。

思路:每讀入乙個車,對其橫座標和縱座標都維護乙個攻擊範圍。然後查詢的時候,如果sum(x2) - sum(x1-1) == x2-x1+ 1,說明全部的行都在攻擊範圍以內,輸出yes。列同理。利用樹狀陣列求區間和。

#include #include #include #include #pragma comment(linker, "/stack:102400000,102400000")

typedef long long ll;

const int inf = 0x3f3f3f3f;

const int maxn = 100000+5;

using namespace std;

int n,m,k,q;

int visx[maxn], visy[maxn], c[2][maxn];

inline int lowbit(int x)

void add(int x, int v, int u)

int sum(int x, int u)

int main()

for(int i = 0; i < q; ++i)

} fclose(stdin);

return 0;

}

hdu5919 主席樹求區間不同數

題目大意 有長度為 n l r 這段區間中所有不同數出現的第乙個位置,按照位置從小到大排完序以後的中間 向上取整 的那個位置是多少?解題思路 把n個元素倒著插進主席樹中,把上次出現的同乙個值的元素的貢獻值 1,新的這個值的貢獻值 1,這樣就可以把這個元素最左側的位置的貢獻保留。查詢區間 l,r 時只...

hdu1754 求區間最值 線段樹 樹狀陣列

題意不用解釋了 線段樹 include include using namespace std define lson l m rt 1 define rson m 1 r rt 1 1 const int maxn 222222 int max maxn 2 void pushup int rt ...

hdu1540(線段樹求連續區間最大和)

題意 最初1 2 3 n按照順序每個點與相鄰的和兩點相連成一條鏈。三種操作d 毀掉x r 恢復上次毀掉的 q 查詢與x直接相連或者間接相鄰的數量 包括自己 題目型別 線段樹求區間連續最大和的模板題目 思路 維護區間從左端點開始最大連續個數lsum,以及當前區間從右端點開始最大連續的個數rsum。重點...