日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【动态规划】cf1034C. Region Separation

發(fā)布時(shí)間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【动态规划】cf1034C. Region Separation 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?質(zhì)因數(shù)分解套路的復(fù)雜度分析的動態(tài)規(guī)劃

題目大意

有一顆$n$個(gè)節(jié)點(diǎn)有點(diǎn)權(quán)的樹,初始整棵樹為$1$號區(qū)域,要求滿足下列規(guī)則:

  • 除非$i$是最后一個(gè)等級,否則每一個(gè)$i$級區(qū)域都要被分成至少兩個(gè)$i+1$級區(qū)域
  • 對于每種等級,每個(gè)點(diǎn)必須恰好屬于一個(gè)區(qū)域
  • 一個(gè)區(qū)域的點(diǎn)集必須是連通的
  • 對于相同等級,每個(gè)區(qū)域必須擁有相同的點(diǎn)權(quán)和

問有多少種合法的劃分方案,$n \le 10^6,a_i \le 10^9$.


題目分析

首先考慮判斷把樹分為$k$個(gè)2級區(qū)域的合法性$f_k$,記點(diǎn)權(quán)和為$tot$。

一種樸素的想法就是對于每一個(gè)$k$,自底向上遍歷整棵樹,若剩余子樹大小恰好為$tot\over k$,就割去這顆子樹;如果整棵樹能夠被處理完,$k$就是合法的。每次判定復(fù)雜度為$O(n)$.

注意到這個(gè)想法里,每次割去子樹的大小$s_i$恰好是$tot\over k$的倍數(shù);并且不難發(fā)現(xiàn),$k$合法的充要條件就是恰有$k$個(gè)$s_i≡0(\text{mod }\frac{tot}{k})$。簡短解釋一下:對于一顆$s_i≡0(\text{mod }\frac{tot}{k})$的子樹,由于它的所有子樹都奉行割去$s_j≡0(\text{mod }\frac{tot}{k})$的原則,那么剩下的包括點(diǎn)$i$的連通塊就是$i$子樹內(nèi)最小的$\ge {tot\over k}$的連通塊。因此,$\sum [s_k≡0(\text{mod }\frac{tot}{k})] \le k$;并且當(dāng)且僅當(dāng)$=k$時(shí)合法。

有了這個(gè)性質(zhì),考慮如何統(tǒng)計(jì)$f_k$。容易發(fā)現(xiàn)對于合法的$k$,$\frac{tot}{k}$的任意約數(shù)$k'$都是合法的。而對于子樹$s_i$,其最小有貢獻(xiàn)的$k=\frac{tot}{\text{gcd}(s_i,tot)}$。所以這里只需要對每個(gè)$s_i$存下最小的合法$k$,再以質(zhì)因數(shù)分解題的套路處理一遍就能算出$[f_k=k]$了。因此處理$f_k$的復(fù)雜度是$O(n\ln n)$。

接下去考慮dp計(jì)算把整棵樹分為若干個(gè)$i$級區(qū)域的方案數(shù)$g_i$。

轉(zhuǎn)載于:https://www.cnblogs.com/antiquality/p/10692714.html

總結(jié)

以上是生活随笔為你收集整理的【动态规划】cf1034C. Region Separation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。