題目位址
這道題考的是優化, 肯定能拿分, 但是拿滿分需要一點思考, 《演算法筆記》上面用分塊的方法來處理, 效率很高, 但是有點複雜, 分塊也算是比較冷門的處理手段, 這道題用二分來做也可以, 而且很簡單, 用空間換時間。
//我知道這道題可以分塊思想來寫 但是我忘了 並且我想到另外一種方法 二分法 還更簡單 不過效率上面來說 比分塊差很多
#include
#include
#include
using namespace std;
intmain()
else
}else
if(oper[1]
=='u')}
else
if(oper[1]
=='e'
)else}}
}
用二分來寫的話, 效率差很多, 只能勉強通過,哈哈哈哈, 但是二分法容易想到, 而且**量很少。
ps: 這道題的資料裡面有大量的重複元素, 所以二分的時候用 lower_bound比用upper_bound要快不少, 但是用upper_bound也能通過。
pat 1057 Stack 樹狀陣列 二分查詢
給我們乙個n表示運算元量 然後三種操作 push和pop 還有求中位數的操作 讓我們根據操作輸出正確的解 用sort排序做 或者 map標記法都會超時 考慮更快的方法 如何快速找到給定一串數的中位數 可以去索引 但是需要排序 題目中告訴我們每個元素都小於1e5 那麼也就是說 上下界已知 那麼求中位數...
PAT A1010 二分進製結合重點題
這道題而可以說是比較難的一道題,如果採用常規遍歷,會出現時長或者溢位的問題 示例中給出的思路很值得借鑑 個人通過該示例有以下幾個不同理解 1.有時候兩個不同進製的數對比,我們可以進行進製,轉化十進位制來進行比較 2.對於有些列舉或者尋找問題,為了不進行列舉遍歷,我們應該第一時間想到二分查詢 對於第一...
PAT A1010 二分進製結合重點題
這道題而可以說是比較難的一道題,如果採用常規遍歷,會出現時長或者溢位的問題 示例中給出的思路很值得借鑑 個人通過該示例有以下幾個不同理解 1.有時候兩個不同進製的數對比,我們可以進行進製,轉化十進位制來進行比較 2.對於有些列舉或者尋找問題,為了不進行列舉遍歷,我們應該第一時間想到二分查詢 對於第一...