poj 3298 數狀陣列

2022-06-05 22:03:06 字數 687 閱讀 6497

題目大意是一條大街上住著n個桌球愛好者,他們的水平高低用乙個數值表示,他們經常舉辦比賽,比賽要三個人,一人當裁判。對裁判是有一定要求的,裁判的水平必須介於兩選手之間且必須住他們中間,計算可以舉辦多少場比賽

#include#include#define maxn 100005

int c[20050]; //存放比比第i個人技能值低的人數

int xt[200050]; //樹狀陣列

int a[10050]; //存放每個人的技能值

int n;

int lowbit(int x)

//一看到這個函式就知道是樹狀陣列

void update(int x)

}//每次更新節點的時候只增加1

int sum(int x)

return s;

} //因為更新的時候陣列元素的值只增加了1,所以返回的值是小於等於x的數的個數

int main()

ans = 0;

//別忘了初始化

//我考慮第i個人做裁判的時候可能的比賽,累加得結果

for(i = 2;i < n;i++)

printf("%i64d\n",ans);

} return 0;

}

poj 2352 stars 數狀陣列

題意 給出n個星星以座標形式 x,y 順序為先按y排序,再按x排序。求出每個等級的星星個數。星星的等級是按照其左下方的星星個數表示的,包括正左和正下的 因為星星座標是按照y的公升序給出的所以我們只要考慮x便可以,把x放進數狀陣列裡。includeconst int maxn 32005 int c ...

Turing Tree(數狀陣列)

sample output 156 36 statistic submit back 題意 求乙個區間內不重複數字的和,例如1 1 1 3,區間 1,4 的和為4。題解 先把要求的區間按右區間公升序排序,再把原來的陣列按順序依次插入樹狀陣列,假設當前插入a i 先判斷a i 在之前有沒有出現過,沒有...

數狀陣列(入門)

學習陣列陣列的好處 樹狀陣列相對於線段樹的編碼來講,樹狀陣列的編碼並不複雜,反而很簡單,對於一些區間求和,區間求最大值,維護區間的問題,反而能更簡單的解決 樹狀陣列核心 int lowbit int i lowbit 可以尋找樹狀陣列中的前向位置和後向位置 例如要更改乙個區間當中的和 void up...