codeforces 簡單計數問題收集

2021-07-04 02:36:23 字數 439 閱讀 5355

開個新坑。。

所謂簡單計數問題, 就是運用組合數學或者一些計數技巧,去統計某個物件的個數。這些題往往碼量不大, 思路靈活。如果這方面的「直覺」很強的話, 解題會很輕鬆。

容易想到的是, 給定乙個區間, 在 nlogn 內求出其 good pairs 的計數。即對 first , 維護 i / rev[i] 的個數。然後列舉 second,加上 query( key = rev[j] / j )。

怎樣滿足 x * y 最小呢?

x 不變, 則 x * y 是單調的, 而 tot 也是隨 y 遞增的。

所以就可以使用乙個類似 two pointer 的演算法, 利用單調性在 o(xlog(x) + ylog(y))的時間內求解。

狀態: (左岸體重為50的人數,左岸體重為100的人數,船的位置)

轉移: 人是不同的,用組合公式選上船的人的方案數。。。

Codeforces 計數亂做

最後一定是若干段全都手動開啟的電腦,每一段中間有一台自動開啟的電腦。將 一台自動開啟 一段手動開啟 視作一整段,則長度為 l 的一段方案數是 2 先隨意開啟一台電腦,之後只能選擇向左或向右拓展 寫成生成函式後二項式展開即可,時間複雜度 o n 2 式子不見了 考慮對每乙個元素 a i 計算貢獻。設 ...

CodeForces 816B(區間計數)

codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...

組合計數 CodeForces 888D

題意 分析 對於乙個給定數列,求滿足 ai i 的元素個數不少於 n k 個的數列的個數。換句話說,就是求最多有 k 個元素不滿足 ai i 的數列有幾個。分析一下用排列數得出一下結論 k 1 時,ans 1 k 2 時,ans 1 c 2,n k 3 時 ans 1 c 2,n c 3,n 2 其...