#14 的 n 是 10^4
這題用 離散化+BIT 解
複雜度也要 O(nlogn)
4.5s 要跑 5*10^5 有點勉強
我用 python 是靠作弊直接撈答案才 AC 的
順便給不會解的人一些提示:
相離 = 沒有相交 = 在左邊或在中間或在右邊
判斷及計算的方法很多,可以自行歸納出可行的方式
BIT 即為 Binary Indexed Tree
不知道的話可以 google 查一下
可以拿來動態的將陣列前綴的某段 所有元素通通+x
也可以查詢某段前綴的總和,兩個操作時間都在 O(logn)
但是在建構的過程需要做離散化
因為輸入的數字範圍太大,所以要做一點轉化
類似將 4, 8, 7, 6, 3 轉成 1, 4, 3, 2, 0 這樣的動作
BIT 如何用在本題上,請自行意會
以上是我的不專業見解~~
#14 的 n 是 10^4
這題用 離散化+BIT 解
複雜度也要 O(nlogn)
4.5s 要跑 5*10^5 有點勉強
我用 python 是靠作弊直接撈答案才 AC 的
順便給不會解的人一些提示:
相離 = 沒有相交 = 在左邊或在中間或在右邊
判斷及計算的方法很多,可以自行歸納出可行的方式
BIT 即為 Binary Indexed Tree
不知道的話可以 google 查一下
可以拿來動態的將陣列前綴的某段 所有元素通通+x
也可以查詢某段前綴的總和,兩個操作時間都在 O(logn)
但是在建構的過程需要做離散化
因為輸入的數字範圍太大,所以要做一點轉化
類似將 4, 8, 7, 6, 3 轉成 1, 4, 3, 2, 0 這樣的動作
BIT 如何用在本題上,請自行意會
以上是我的不專業見解~~
大佬可以大概講解解題思路嗎?
拜託QAQ