poj 2182 單點修改

2022-04-08 10:31:35 字數 588 閱讀 4200

題意:有n頭牛,標號從1到n,現在牛排成乙個佇列,知道每個牛的前面比自己標號小的牛的數量,輸出每個牛的標號。

題解:給出的序列的最後乙個數字是可以推出的,然後把這個數字拿走,又能知道前面有幾個數字,和之前做過的有幾個空位乙個道理,維護線段樹區間解決。

#include

#include

#include

using namespace std;

const int n = 8005;

int n, a[n], sum[n << 2], res[n];

void pushup(int k)

void build(int k, int left, int right)

int mid = (left + right) / 2;

build(k * 2, left, mid);

build(k * 2 + 1, mid + 1, right);

pushup(k);

}int modify(int k, int left, int right, int x)

int main()

return 0;

}

poj 2182 樹狀陣列

這題對於o n 2 的演算法有很多,我這隨便貼乙個爛的,跑了375ms。include include using namespace std int mat 8008 int main for i 0 i printf d n mat i return0 view code 還是來看樹狀陣列的解法...

poj 2182 線段樹 樹狀陣列

題目大意 n個數排成一排 不知道大小,只是佔了乙個位置 從a 1 到a n 進行遍歷,對於每個a i 給出從a 1 到a i 1 中小於a i 數的個數。要求出 a 1 到a n 中這n個數的相對順序。題目分析 則 a i 在所有n個數中的序號 按照從小到大排序 為 k less i t 1 但是,...

poj2182 樹狀陣列 二分)

題意 給乙個數n,然後n 1行,每行乙個數q,第i個數qi代表第i 1頭牛前面有qi頭牛編號比它小,求所有牛的編號。因為只有最後一頭牛編號是確定的,所有從後往前,每次用二分找到數字,並用樹狀陣列確定和儲存。include include include includeusing namespace ...