ACwing 244 謎一樣的牛

2021-10-03 03:24:41 字數 855 閱讀 3003

時/空限制:1s / 64mb

有n頭奶牛,已知它們的身高為 1~n 且各不相同,但不知道每頭奶牛的具體身高。

現在這n頭奶牛站成一列,已知第i頭牛前面有aiai頭牛比它低,求每頭奶牛的身高。

輸入格式

第1行:輸入整數n。

第2..n行:每行輸入乙個整數aiai,第i行表示第i頭牛前面有aiai頭牛比它低。

(注意:因為第1頭牛前面沒有牛,所以並沒有將它列出)

輸出格式

輸出包含n行,每行輸出乙個整數表示牛的身高。

第i行輸出第i頭牛的身高。

資料範圍

1≤n≤1051≤n≤105

輸入樣例:

512

10

輸出樣例:

245

31

思路:從最後一頭牛往前遍歷,比當前牛小的一定在它前面,二分找到當前牛高度,並將此牛刪去(設為負一);

#includeusing namespace std;

const int n = 100000 + 10;

int a[n],tree[n],ans[n];

int n;

int lowbit(int x)

int query(int x)

int add(int x, int val)

int main()

for(int i=n; i>=1; i--)

ans[i] = r;

add(r,-1);

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

cout

}

AcWing 244 迷一樣的牛

題目傳送門 樹狀陣列 二分 題目描述 給定 n 頭牛,且 h i 表示第 i 頭牛前面有 h i 頭牛比它低,求每頭牛的身高。思路 需要從最後一頭牛作為突破口,因為最後一頭牛的 h n 表示,在前面的牛中,有 h n 頭牛比它矮,即在所有的牛中,有 h n 頭牛比他矮,因此最後一牛的高度在所有牛中排...

244 謎一樣的牛(樹狀陣列)

有n頭奶牛,已知它們的身高為 1 n 且各不相同,但不知道每頭奶牛的具體身高。現在這n頭奶牛站成一列,已知第i頭牛前面有ai 頭牛比它低,求每頭奶牛的身高。輸入格式 第1行 輸入整數n。第2 n行 每行輸入乙個整數ai 第i行表示第i頭牛前面有ai 頭牛比它低。注意 因為第1頭牛前面沒有牛,所以並沒...

謎一樣的牛 樹狀陣列

有n頭奶牛,已知它們的身高為 1 n 且各不相同,但不知道每頭奶牛的具體身高。現在這n頭奶牛站成一列,已知第i頭牛前面有ai頭牛比它低,求每頭奶牛的身高。輸入格式 第1行 輸入整數n。第2 n行 每行輸入乙個整數ai,第i行表示第i頭牛前面有ai頭牛比它低。注意 因為第1頭牛前面沒有牛,所以並沒有將...