Codeforces Round #818 (Div. 2)
D Madoka and The Corruption Scheme
我們可以將所有的比賽看成有 2n2^n2n 個(gè)葉子節(jié)點(diǎn)的二叉樹
問題轉(zhuǎn)換為對(duì)每個(gè)非葉子結(jié)點(diǎn)規(guī)定左/右兒子贏,并規(guī)定葉子節(jié)點(diǎn)編號(hào)
使得在修改k個(gè)非葉子節(jié)點(diǎn)的狀態(tài)后最后贏家編號(hào)最小
那么我們可以先約定每個(gè)非葉子節(jié)點(diǎn)的左兒子贏
從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)經(jīng)過n條邊
我們規(guī)定從當(dāng)前節(jié)點(diǎn)走向左兒子代表一個(gè)字符‘L’
另一邊為字符‘R’
那么每個(gè)葉子節(jié)點(diǎn)代表一個(gè)LR序列
如果想要一個(gè)葉子節(jié)點(diǎn)成為最后贏家,那么我們需要修改所有R的位置
那么代表葉子結(jié)點(diǎn)的修改權(quán)值為R的數(shù)量
如果修改次數(shù)為k,那么所有LR序列中R的數(shù)量小于等于k的都可以成為最后贏家
LR序列中R的個(gè)數(shù)為 iii 的有 CniC_n^iCni? 個(gè)
那么我們貪心的對(duì)修改權(quán)值從小到大的放入1到2n2^n2n
答案即為 ∑i=0kCni\sum\limits_{i=0}^{k}C_n^ii=0∑k?Cni?
PS:
賽時(shí)其實(shí)是畫二叉樹找規(guī)律找出來的,本來是想貪心的構(gòu)造一個(gè)序列
但是在計(jì)算了一下每個(gè)葉子節(jié)點(diǎn)的權(quán)值時(shí)發(fā)現(xiàn)了經(jīng)典組合數(shù) 13311\quad 3\quad 3\quad 11331
之后粘了個(gè)組合數(shù)板子就秒了,啟發(fā)就是以后可以計(jì)算節(jié)點(diǎn)地位或者說節(jié)點(diǎn)的權(quán)值
然后放置編號(hào),那么思路會(huì)明確的多
E Madoka and The Best University
這題賽時(shí)沒過,賽后補(bǔ)的
一開始不會(huì)歐拉篩,先去學(xué)了下歐拉篩
題目是求∑a+b+c=nlcm(c,gcd(a,b))\sum\limits_{a+b+c=n}lcm(c,gcd(a,b))a+b+c=n∑?lcm(c,gcd(a,b))
首先看題解我們知道了 gcd(a,b)=gcd(a,a+b)=gcd(a,n?c)gcd(a,b)=gcd(a,a+b)=gcd(a,n?c)gcd(a,b)=gcd(a,a+b)=gcd(a,n?c)
我們?cè)O(shè) gcd(a,n?c)=dgcd(a,n-c)=dgcd(a,n?c)=d,那么 gcd(ad,n?cd)=1gcd(\frac{a}ze8trgl8bvbq,\frac{n-c}ze8trgl8bvbq)=1gcd(da?,dn?c?)=1
因?yàn)?a+b=n?ca+b=n-ca+b=n?c,所以 ad<n?cd\frac{a}ze8trgl8bvbq<\frac{n-c}ze8trgl8bvbqda?<dn?c? 并且 ad\frac{a}ze8trgl8bvbqda? 與 n?cd\frac{n-c}ze8trgl8bvbqdn?c? 互質(zhì)
即 ad\frac{a}ze8trgl8bvbqda? 的數(shù)量為歐拉函數(shù) ?(n?cd)?(\frac{n-c}ze8trgl8bvbq)?(dn?c?) (歐拉函數(shù)定義)
而我們可以 O(n)O(n)O(n) 求出 1 到 n 的歐拉函數(shù) (歐拉篩)
但是如果我們?nèi)绻杜e ccc,再質(zhì)因數(shù)分解 n?cn-cn?c
我們的復(fù)雜度為 O(nnlogn)O(n\sqrt n logn)O(nn?logn) (lognlognlogn為gcdgcdgcd的復(fù)雜度)
但如果我們枚舉 ddd,再枚舉 n?cn-cn?c (n?cn-cn?c為ddd的倍數(shù))
我們的復(fù)雜度就降為 O((nloglogn)logn)O((nloglogn)logn)O((nloglogn)logn)
(lognlognlogn為gcdgcdgcd的復(fù)雜度,nloglognnloglognnloglogn為埃氏篩的復(fù)雜度)
特別要注意的是 a<n?ca<n-ca<n?c 所以 ddd 取不到 1
我們直接讓歐拉函數(shù) phi[1]=0phi[1]=0phi[1]=0 即可(本來是等于1的)
ps:
感覺數(shù)學(xué)題中 lcmlcmlcm 和 gcdgcdgcd 很容易滿足積性函數(shù)的性質(zhì)
之后遇到類似的題目,如果沒有思路,可以猜測是否為積性函數(shù)
F 大佬說是用網(wǎng)絡(luò)流過的,還沒學(xué),留個(gè)坑
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #818 (Div. 2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界显示服务器领地指令,我的世界服务
- 下一篇: 乐嘉性格色彩学