poj 2352 數星星 樹狀陣列

2021-07-03 19:33:28 字數 913 閱讀 4058

題意:

給星星們的座標。

求在星星左下方的星星有幾顆。

有幾顆就是幾級星星。

最後將他們從0級到n-1級的個數輸出。

解析:題目已經將其按照y排序了,然後按照x乙個乙個往樹狀陣列裡面加,然後詢問就行了。

注意先詢問,更新完ans,再去更新樹狀陣列,因為先更新樹狀陣列的話會把本身就直接加上了。

**:

#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define lson lo, mi, rt << 1

#define rson mi + 1, hi, rt << 1 | 1

using namespace std;

const int maxn = 32000 + 10;

const int inf = 0x3f3f3f3f;

const double eps = 1e-8;

const double pi = acos(-1.0);

const double ee = exp(1.0);

int n;

int c[maxn];

int lowbit(int x)

void update(int x, int num)

}int query(int x)

return res;

}int ans[maxn];

int main()

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

printf("%d\n", ans[i]);

}return 0;

}

poj 2352 樹狀陣列

這道題好像被賤做了,看起來像二維的樹狀陣列,其實只是一維的,可能是資料太大了,矩陣開不那麼大,因為題意是求乙個矩陣中做它左下部分的個數,而去輸入的順序是按y公升序,後x公升序輸入。其實如果不按這個順序可以下排序。然後就是一維的樹狀陣列的思路了。轉個圖,可以知道它的這陣列性質了 include inc...

poj 2352 樹狀陣列

第一次做樹狀陣列的題,還是遇到了一點小麻煩,吃一塹長一智。對於樹狀陣列來說,下標不能從0開始,否則就死迴圈了。因為0 lowbit 0 0 就死迴圈下去了。其他的就沒什麼了,其實這道題就看x值,而且題意還給排好序了。直接計算就ok了。如下 include include include includ...

poj2352 樹狀陣列

題意 求0 n級別的星星的個數 以每乙個星星為原點建立平面直角座標系,在當前座標系第三象限的星星的個數看做乙個星星的級別數 include include include include include include include include include include using na...