假設我有一個給定的數組A.現在有形式如何使用笛卡爾樹多次從索引i到索引j的數組?
reverse i,j // means reverse the array Ai..j inclusive
和
print i,j
打印陣列Ai..j的多個操作。
例,
A = 6 9 1 10 4 15 9
reverse 2,3
A = 6 1 9 10 4 15 9
reverse 3,6
A = 6 1 15 4 10 9 9
print 1,4
6 1 15 4
我聽說,它可以通過笛卡爾樹來完成。所以我一直在閱讀博客here但我仍然無法理解我們如何使用笛卡爾樹來做到這一點,關鍵和價值應該是什麼以及我們應該如何實現?
'互換(I,J);''我++''j'重複,直到'I'j' – Haris 2014-10-11 08:12:45
我希望有人誰已經知道笛卡爾樹會能夠回答這個問題,因此沒有必要爲該網站。我提供了該網站,以便人們可以知道我遵循哪種笛卡爾樹的實現方式(並且沒有英文網站實施笛卡爾樹) – Unbound 2014-10-11 08:19:29