數算實習 LOST COW 線段樹

2021-08-29 02:56:45 字數 758 閱讀 1170

lost cow

問題描述:一共n頭奶牛編號從1到n,現在它們的排列順序發生了錯亂,對於每頭奶牛,你只知道排在它前面並且編號小於它的奶牛數量。

輸入第1行:單個整數,n ,表示奶牛的總數

之後n-1行:第k行描述了排在第k+1頭奶牛之前並且編號小於該奶牛編號的奶牛數量。當然,沒有奶牛排在第一頭牛的前面,所以沒有考慮它。

樣例輸入51

210樣例輸出24

531

#include #include using namespace std;

struct tree

;void buildtree(tree* root)

int quary(tree* root,int k)

int main()

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

tree* root = new tree;

root->l = 1;

root->r = n;

root->len = n;

root->left = new tree;

root->right = new tree;

buildtree(root);

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

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

cout << c[i] << endl;

return 0;

}

數算實習 k th number 線段樹

k th number 給定數列a1,a2 an,各不相同。要進行m次查詢,每次查詢 a l r 中第k小的數是什麼 1 n 100 000,1 m 5 000 abs ai 10 9 樣例輸入 7 3 7個數,3次查詢 1 5 2 6 3 7 4 2 5 3 4 4 1 1 7 3 樣例輸出56 ...

數算實習 Mobile phones 樹狀陣列

mobile phones 描述假設某地區的 移動 基站可以接收手機訊號。該區域為正方形,形成乙個s s大小的矩陣,行和列的編號從0到s 1。每個方塊包含乙個基站。手機內的有源手機數量可能會發生變化,因為手機從可以在方塊間任意移動或開機關機。編寫乙個程式,接收這些報告並回答任何矩形區域中當前活動手機...

數算實習 apple tree 樹狀陣列

輸入 第一行包含乙個整數n n 100,000 這是樹中的樹杈的數量。以下n 1行每個包含兩個整數u和v,這意味著樹杈u和樹杈v通過分支連線。下一行包含的整數m m 100,000 以下m行每行包含乙個資訊,它要麼是 c x 表示在樹杈x上是否存在蘋果的狀態發生改變。即如果樹杈上有蘋果,那麼卡卡就會...