poj2182 樹狀陣列 二分)

2021-09-17 21:48:30 字數 483 閱讀 9507

題意:給乙個數n,然後n-1行,每行乙個數q,第i個數qi代表第i+1頭牛前面有qi頭牛編號比它小,求所有牛的編號。

因為只有最後一頭牛編號是確定的,所有從後往前,每次用二分找到數字,並用樹狀陣列確定和儲存。

#include#include#include#includeusing namespace std;

const int sz = 8005;

int a[sz],c[sz],ans[sz],n;

int lower_bit(int q)

int summ(int r)

return res;

}void add(int aa,int v)

}int main()

ans[i] = l;

add(l,1);

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

cout

}

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 但是,...

POJ 2182 Lost Cows(樹狀陣列)

用c i 來表示 i lowbit i 1,i 區間內有多少個位置,接著二分查詢num i 1的位置,接著在相關區間內減去乙個位置 這步尤為重要,關乎前面能否查詢到正確的位置 main.cpp richard created by 邵金傑 on 16 8 20.include include inc...