題意:給乙個數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...