整理的算法模板合集: ACM模板

点我看算法全家桶系列!!!

实际上是一个全新的精炼模板整合计划


题目链接

https://hydro.ac/d/bzoj/p/2159

是 hydro 的 BZOJ 修复工程 !(我也去领了一点题慢慢修着玩,这题就是我修的嘿嘿嘿)

Problem

Crash 小朋友最近迷上了一款游戏——文明5 (Civilization V)。在这个游戏中,玩家可以建立和发展自己的国家,通过外交和别的国家交流,或是通过战争征服别的国家。

现在 Crash 已经拥有了一个 nnn 个城市的国家,这些城市之间通过道路相连。由于建设道路是有花费的,因此 Crash 只修建了 n−1n-1n−1 条道路连接这些城市,不过可以保证任意两个城市都有路径相通。

在游戏中,Crash 需要选择一个城市作为他的国家的首都,选择首都需要考虑很多指标,有一个指标是这样的:

S(i)=∑j=1ndist(i,j)kS(i) = \sum_{j = 1}^{n}{\rm dist}(i, j) ^ k S(i)=j=1∑n​dist(i,j)k

其中 S(i)S(i)S(i) 表示第 iii 个城市的指标值,dist(i,j){\rm dist}(i, j)dist(i,j) 表示第 iii 个城市到第 jjj 个城市需要经过的道路条数的最小值,kkk 为一个常数且为正整数。

因此 Crash 交给你一个简单的任务:给出城市之间的道路,对于每个城市,输出这个城市的指标值,由于指标值可能会很大,所以你只需要输出这个数mod10007\bmod\ 10007mod 10007 的值。

1≤n≤5×1041\le n\le 5\times 10^41≤n≤5×104 ,1≤k≤1501\le k\le 1501≤k≤150。

Solution

没有边权的无根树^q^

当 k=1k=1k=1 时显然是经典的换根DP。

考虑如何处理 distk\mathrm{dist}^kdistk。

我们知道第二类斯特林数 S(n,m)={nm}S(n,m)= \left \{ {\begin{matrix} n\\ m \end{matrix}} \right \}S(n,m)={nm​} 满足

mn=∑i=0n{in}i!(mi)m^{n}=\sum_{i=0}^{n} \left \{ {\begin{matrix} i\\ n \end{matrix}} \right \} i ! {m\choose i} mn=i=0∑n​{in​}i!(im​)

则有:

Sx=∑i=1ndis(i,x)k=∑i=1n∑j=0k{kj}(dis(i,x)j)j!=∑j=0k{kj}j!∑i=1n(dis(i,x)j)=∑j=0k{kj}j!∑i=1n((dis(i,x)−1j)+(dis(i,x−1)j−1))\begin{aligned}S_{x} &=\sum_{i=1}^{n} \mathrm{d i s}(i, x)^{k} \\&=\sum_{i=1}^{n} \sum_{j=0}^{k} \left \{ {\begin{matrix} k\\ j \end{matrix}} \right \} {\mathrm{d i s}(i, x)\choose j}j ! \\&=\sum_{j=0}^{k}\left\{\begin{array}{c}k \\j\end{array}\right\} j ! \sum_{i=1}^{n} {\mathrm{d i s}(i, x)\choose j} \\&=\sum_{j=0}^{k}\left\{\begin{array}{c}k \\j\end{array}\right\} j ! \sum_{i=1}^{n}\left({\mathrm{d i s}(i, x)-1\choose j}+{\mathrm{d i s}(i, x-1)\choose j-1}\right)\end{aligned} Sx​​=i=1∑n​dis(i,x)k=i=1∑n​j=0∑k​{kj​}(jdis(i,x)​)j!=j=0∑k​{kj​}j!i=1∑n​(jdis(i,x)​)=j=0∑k​{kj​}j!i=1∑n​((jdis(i,x)−1​)+(j−1dis(i,x−1)​))​

考虑继续做换根DP。

设 f[x,j]f[x,j]f[x,j] 表示以 xxx 为根的子树中,上述表达式的后半部分的答案。

显然有转移方程:

f[x,j]=∑son∈x_sonf[son,j]+f[son,j−1]f[x,j]=\sum\limits_{\mathrm{son}\in \mathrm{x\_{son}}}f[\mathrm{son}, j]+f[\mathrm{son}, j-1] f[x,j]=son∈x_son∑​f[son,j]+f[son,j−1]

预处理之后直接进行换根DP即可。

时间复杂度 O(nk)O(nk)O(nk)

Code

BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】相关推荐

  1. BZOJ 2156 「国家集训队」星际探索(最短路)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2156 是 hydro 的 BZOJ ...

  2. BZOJ 2152 「国家集训队」聪聪可可(点分治)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2152 是 hydro 的 BZOJ ...

  3. BZOJ 2157 「国家集训队」旅游(树链剖分,线段树,边权转点权)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2157 是 hydro 的 BZOJ ...

  4. 「Luogu5395」【模板】第二类斯特林数·行

    「Luogu5395」[模板]第二类斯特林数·行 problem Solution 一句话题意:求\(_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}\) 根据第二类斯 ...

  5. BZOJ 4555 Luogu P4091 [HEOI2016/TJOI2016]求和 (第二类斯特林数)

    题目链接 (lugou) https://www.luogu.org/problem/P4091 (bzoj) https://www.lydsy.com/JudgeOnline/problem.ph ...

  6. 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数

    出处0.0 用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O( ...

  7. bzoj 5093 [Lydsy1711月赛]图的价值——第二类斯特林数

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5093 不要见到组合数就拆! 枚举每个点的度数,则答案为 \( n*\sum\limits_{ ...

  8. BZOJ2159 Crash 的文明世界 题解

    题目大意:给一棵N个节点的树及正整数K,对每一个节点i求Σdist(i,j)^K.N<=5*10^4,K<=150. O(NK^2),O(NKlogK)的做法都可以在贾志鹏2011年的集训 ...

  9. BZOJ 2039: [2009国家集训队]employ人员雇佣

    二次联通门 : BZOJ 2039: [2009国家集训队]employ人员雇佣 /*BZOJ 2039: [2009国家集训队]employ人员雇佣最小割先全部雇佣每个人向汇点连边后源点分别向i,j ...

最新文章

  1. UNIX 网络协议的深度分析
  2. ajax 成功回调函数,jQuery的阿贾克斯成功回调函数定义jQuery的阿贾克斯成功回调函数定义(jQuery ajax...
  3. Spark RDD的默认分区数:(spark 2.1.0)
  4. spring学习(29):xml配置规范
  5. 一个websocket 可以多个页面创建吗_实战分享|给我一个Puppeteer,没有爬不了的网站
  6. 又跌了!2020年6月程序员工资统计
  7. ASP.NET AjaxPro的应用 .AjaxPro使用中“XXX未定义”的一种解决方法(转载的)
  8. 在线json解析工具 在线js解析加密混合工具
  9. Bootstrap 弹出框modal 垂直居中(适用各种分辨率窗口)
  10. jsp自定义标签 线程安全
  11. office 中墨迹书写工具_word2016 墨迹书写 word2016墨迹书写工具
  12. Microsoft Office 2007 注册码office Visio 2007 注册码
  13. Gartner发布《2023年十大战略技术趋势》
  14. html字体外围有黄色边框,input或textarea在chrome、safari浏览器点击获得焦点时出现黄色边框去掉的方法...
  15. ImageIO类的使用
  16. 联邦滤波算法封装Matlab函数
  17. 【Pygame实战】风靡全球的切水果游戏升级版“水果忍者”上线啦,你敢来PK嘛?
  18. 高分屏笔记本显示模糊解决方法
  19. linux镜像文件没有gho,使用OneKey备份系统后找不到GHO系统文件解决方法
  20. HGOI11.1集训题解

热门文章

  1. 素数和_只愿与一人十指紧扣_新浪博客
  2. 使用OpenCV进行图像编辑--绘画和素描
  3. 第7章——狄克特斯拉算法
  4. 链表问题6——环形单链表的约瑟夫问题(初阶)
  5. python基础(四)集合
  6. 今日宇宙最热科技:人工智能可预测死亡时间,马斯克拿下美空军1.3亿合同!...
  7. Level3公司在哥伦比亚开通运营第三个数据中心
  8. UITableViewCell 左侧滑动删除按钮 添加图片 (不完美解决)
  9. eclipse怎样生成javadoc
  10. 常见apk安装失败的错误及原因