PKU3321 Apple Tree [1WA 2AC][08.08.22]

Run ID User Problem Result Memory Time Language Code Length Submit Time
3948653 slxg 3321 Accepted 9300K 375MS Pascal 1834B 2008-08-22 16:32:42
3948639 slxg 3321 Accepted 9300K 407MS Pascal 1821B 2008-08-22 16:30:20
3948556 slxg 3321 Wrong Answer Pascal 1816B 2008-08-22 16:18:51

這道題的轉化比較巧妙~

利用的是樹的後序遍歷~

後序遍歷時間……

把樹的查詢轉換成序列的查詢~

用s[i]和t[i]分別表是i及其子樹在後序遍歷序列中的開頭位置和結束位置~

修改時 change(t[i])~注意阿~不是 change(i)阿~  (WA了1次)

查詢時 sum(t[i])-sum(s[i]-1)

然後利用樹狀數組就可以輕鬆過了~

還有把lowbit加上inline可以節省不少時間,其他的就不用了

 

如果把樹轉換成序列能保持有序性,且更容易搞,那就轉化吧!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章