1. 程式人生 > >【口胡系列】牛客小白月賽9

【口胡系列】牛客小白月賽9

題目連結

挑了幾題口胡+寫了一發

這裡合在一起講好了

C:
經典題目
20 + 20+ 個樹狀陣列分開維護二進位制上每一位為 1 1 的有多少個數
然後查詢直接 20

20 個樹狀陣列直接查就好了

D:
經典題目吧。。
樹轉區間,線段樹維護數的和 以及 平方和,搞搞就好了

I:
被常數卡的想罵人
分開考慮每個點的貢獻,對於每個點考慮 他的貢獻為 k k 條鏈中至少一條經過這個點的概率
正難則反,考慮上述概率為 1

k 1-k 條鏈中沒有一條經過該點的概率
這個概率顯然好求,顯然就是沒經過這個點的鏈的數量除以總的鏈的數量再來個 k k 次方
但是這樣直接快速冪求 k
k
次方會T掉,考慮用尤拉降冪搞搞
然後就做完了

J:
傻子題
顯然對於一個 i i ,答案為 f ( i , k ) = Π p i   C ( k 1 + a i , a i ) f(i,k) = \Pi_{p_i} \ C(k - 1 + a_i,a_i)
然後又容易發現 f ( i , k ) f(i,k) 是個積性函式
那就直接預處理 C ( k 1 + a i , a i ) C(k - 1 + a_i,a_i) ,然後再上個線性篩把 f ( i , k ) f(i,k) 篩出來就好了

然後就做完了

(可能以後會貼程式碼
另:有沒有神仙教教我 G G 啊,太難了實在不會\可憐\可憐