POJ 2481 樹狀陣列

2021-08-25 19:38:05 字數 888 閱讀 6112

n個區間,求小區間被多少個大區間包含

我們可以按照r從大到小,l從小到大,把區間sort一遍,然後for迴圈,每次查詢有多少個數在l的前面,就有多少個大區間包含此次遍歷的區間,然後我們可以用樹狀陣列記錄一下,減少複雜度。

#include 

#include

#include

#include

#define debug(x) cout<<#x<<" = "<#define inf 0x3f3f3f3f

using

namespace

std;

const

int maxn = 1e5 + 10;

struct node

} node[maxn];

/********************樹狀陣列模板************************/

int bitree_max;//資料範圍[1,n]

int bitree_num[maxn];

void update(int i, int value)

}int query(int i)

return ans;

}/********************樹狀陣列模板************************/

int main(void)

for (int i = 1; i <= n; i++)

cout

<< cnt[i] << " \n"[i == n];

}return

0;}

poj 2481(樹狀陣列)

這題樹狀陣列明顯可解,不解釋,但是注意有相同的奶牛的處理 include include include include define n 100005 using namespace std int c n tem struct dian d n int cmp dian a,dian b int...

poj 2481 樹狀陣列

解法2 按si值做降序排序後,相當於求每個位置i左邊大於等於e i 的個數 樹狀陣列更新節點的路徑和求和的路徑要改變,getsum i 相當於求i i 1 maxn include include using namespace std const int maxn 100010 int sum m...

POJ2481 樹狀陣列

題意 給n個節點的s和e,求對於每個節點,其他節點和它的關係滿足si sj and ej ei and ei si ej sj 的個數 題解 由於e的關係遞減,s的關係遞增,因此可以先對e排序,然後利用樹狀陣列更新並查詢每個sj在其之前的si的個數就是問題的解 include include inc...