所有網站都死了,所以只能寫文章了(大綱)

LCat90發表於2024-10-16

入門級

2.1.3 資料結構

其中有個 huffman 樹,定義是:求最小權的樹,權定義為所有點權值乘深度的和。

荷馬史詩裡面要求兒子不超過 \(k\),需要補 0 過後用堆貪心,每次選小的早一步合成作為更深點。

還有個鄰接矩陣,注意這玩意自乘 \(k\) 次方就是圖上恰好\(k\) 的到達情況。

還有棧、佇列什麼的,注意 csps2020 迴文一題中先討論第一步然後轉化成雙棧問題。

2.1.4 演算法

4. 數值處理演算法 高精度

某人:ccf 考高精度我吃*。

一般來講 __int128 就夠了。

除法現在不會了。https://www.becoder.com.cn/submission/2651609

現在終於會了!考慮大除法,當前要計算的就是 r 和 b 的除,而 r 就是原數到這一位的取模。

5. 排序演算法

注意氣泡排序考點較多,參考 noi online s 那一道以及模擬賽 T2,都是逆序對的轉化以及考慮一個元素前面有多少個比他的大,記為 \(f_i\)。(一輪排序後 \(f_i\) 如果非 0 則改變 1)

還有什麼計數排序,基本上沒用。注意下面程式碼最後一行倒敘遍歷是考慮情況:值相同但要保留輸入順序。

void counting_sort() {
  for (int i = 1; i <= n; ++i) ++cnt[a[i]];
  for (int i = 1; i <= w; ++i) cnt[i] += cnt[i - 1];
  for (int i = n; i >= 1; --i) b[cnt[a[i]]--] = a[i];
}

相關文章