当前位置: 首页 > news >正文

网站怎么免费做推广方案网站恶意点击

网站怎么免费做推广方案,网站恶意点击,东平网站制作哪家好,淘宝客怎么自己做网站小 L 出了一道题#xff1a; 给定一棵 n n n 个点的树#xff0c;定义两点之间的距离为连接两点的唯一简单路径的边的条数。求树上的点两两之间的距离之和。 小 Q 觉得这题太简单了#xff0c;于是给它加强了一下#xff1a; 给定一棵 n n n 个点的树#xff0c;求树上的…小 L 出了一道题 给定一棵 n n n 个点的树定义两点之间的距离为连接两点的唯一简单路径的边的条数。求树上的点两两之间的距离之和。 小 Q 觉得这题太简单了于是给它加强了一下 给定一棵 n n n 个点的树求树上的点两两之间的距离的 k k k 次方之和。 这下他们都不会做了你能帮帮他们吗 几个记号 T ( n ) T(n) T(n) 表示子树 n n n f a i fa_i fai​ 表示 i i i 的父亲 dis ⁡ ( i , j ) \operatorname{dis}(i,j) dis(i,j) 表示树上两点 i , j i,j i,j 的距离 s o n i son_i soni​ 表示 i i i 的儿子。 将 x k x^k xk 斯特林展开得到 x k ∑ i 0 x { k i } ⋅ i ! ⋅ ( x i ) x^k\sum\limits_{i0}^x{k\brace i}\cdot i!\cdot\binom xi xki0∑x​{ik​}⋅i!⋅(ix​) 其中 { k i } {k\brace i} {ik​} 是第二类斯特林数表示把 k k k 个数划分成 i i i 个无序非空集合的方案数。 从组合意义上可以说明式子成立 x k x^k xk 表示把 k k k 个不同的球放入 x x x 个不同盒子最后盒子可以为空的方案数。有 ( x i ) \binom xi (ix​) 种方案选择 i i i 个盒子放球其他盒子为空。然后 { k i } k\brace i {ik​} 就是把 k k k 个球分给 i i i 个相同盒子的方案数。因为盒子是不同的所以还要乘上 i ! i! i!。式子显然成立。 在题目中只需枚举到 k k k 即可因为若 k i ki ki 斯特林数就为 0 0 0 而题目是要求 ∑ i 1 n ∑ j i 1 n ∑ l 0 k { k l } ⋅ l ! ⋅ ( dis ⁡ ( i , j ) l ) ∑ l 0 k { k l } ⋅ l ! ( ∑ i 1 n ∑ j i 1 n ( dis ⁡ ( i , j ) l ) ) \sum\limits_{i1}^n\sum\limits_{ji1}^n\sum\limits_{l0}^k{k\brace l}\cdot l!\cdot\binom{\operatorname{dis}(i,j)}l\sum\limits_{l0}^k{k\brace l}\cdot l!\left(\sum\limits_{i1}^n\sum\limits_{ji1}^n\binom{\operatorname{dis}(i,j)}l\right) i1∑n​ji1∑n​l0∑k​{lk​}⋅l!⋅(ldis(i,j)​)l0∑k​{lk​}⋅l!(i1∑n​ji1∑n​(ldis(i,j)​)) 问题转换为对于每个 l ∈ [ 1 , k ] l\in[1,k] l∈[1,k] 求 ∑ i 1 n ∑ j i 1 n ( dis ⁡ ( i , j ) l ) \sum\limits_{i1}^n\sum\limits_{ji1}^n\binom{\operatorname{dis}(i,j)}l i1∑n​ji1∑n​(ldis(i,j)​)。 设 f i , j f_{i,j} fi,j​ 表示 ∑ x ∈ T ( i ) ( d i s ( f a i , x ) ⁡ j ) \sum\limits_{x\in T(i)}\binom{\operatorname{dis(fa_i,x)}}{j} x∈T(i)∑​(jdis(fai​,x)​)就是 ( i 子树的所有点到 f a i 距离 j ) \binom{i 子树的所有点到 fa_i 距离}{j} (ji子树的所有点到fai​距离​) 之和。 考虑如何转移。由于有 ( x 1 j ) ( x j ) ( x j − 1 ) \binom{x1}{j}\binom{x}{j}\binom{x}{j-1} (jx1​)(jx​)(j−1x​)所以 f i , j ∑ x ∈ s o n i ( f x , j f x , j − 1 ) f_{i,j}\sum\limits_{x\in son_i}(f_{x,j}f_{x,j-1}) fi,j​x∈soni​∑​(fx,j​fx,j−1​)。 在计算答案时要将每个 i i i 的子树进行“合并”。由于 ( x y j ) ∑ i 0 j ( x j ) ( y i − j ) \binom{xy}{j}\sum\limits_{i0}^j\binom{x}{j}\binom{y}{i-j} (jxy​)i0∑j​(jx​)(i−jy​)所以对于每个 j j j 答案要加上 ∑ l 0 j f x , l f y , j − l \sum\limits_{l0}^jf_{x,l}f_{y,j-l} l0∑j​fx,l​fy,j−l​。这里可以用前缀和优化。时间复杂度 O ( n k 2 ) O(nk^2) O(nk2) O ( n k 2 ) O(nk^2) O(nk2) 实际上是过不了的所以我们要发扬人类智慧。如果是一条链由于儿子只有一个显然不可能有“合并”就不用算了如果所有的 x ∈ T ( i ) x\in{T(i)} x∈T(i)都有 dis ⁡ ( f a i , x ) j \operatorname{dis}(fa_i,x)j dis(fai​,x)j就说明 f i , k f_{i,k} fi,k​ 为 0 0 0可以少枚举。通过一系列操作成功水过。 代码如下 #includebits/stdc.h using namespace std; typedef long long ll; const ll mod998244353; const int N1e61,INF1e9; int n,k,fa[N],b[N],sz[N]; int head[N],nxt[N1],to[N1],cnt,dep[N],maxdep[N]; ll ans[101],Ans,stl[101][101],f[101],inv[101],dp[N][101]; void add(int u,int v) {to[cnt]v;nxt[cnt]head[u];head[u]cnt; } ll ksm(ll a,ll b) {ll ans1;while(b){if(b1) ansans*a%mod;b1;aa*a%mod;}return ans; } ll C(ll x,ll y) {ll sum1;for(int i1;iy;i){sumsum*(x-i1)%mod;}return (sum*inv[y]%modmod)%mod; } void dfs(int u,int fa) {dep[u]dep[fa]1;maxdep[u]dep[u];for(int ihead[u];i;inxt[i]) if(to[i]!fa) dfs(to[i],u),maxdep[u]max(maxdep[u],maxdep[to[i]]); } void solve(int u,int fa) {int sz0;for(int ihead[u];i;inxt[i]){if(to[i]!fa){sz;solve(to[i],u);if(sz1){for(int l0;lmin(k,maxdep[u]*2-2*dep[u]);l){for(int p0;pl;p)ans[l](ans[l]1ll*dp[u][p]*dp[to[i]][l-p])%mod;}}for(int l0;lk;l) ans[l](ans[l]dp[to[i]][l])%mod;for(int j0;jk;j) (dp[u][j]dp[to[i]][j])%mod;}}dp[u][0];for(int j1;jk;j){for(int ihead[u];i;inxt[i]){if(to[i]fa) continue;(dp[u][j]dp[to[i]][j-1])%mod;}if(j1) dp[u][j];dp[u][j]%mod;} } void init() {stl[0][0]1;for(int i1;ik;i){for(int j1;ji;j){stl[i][j](stl[i-1][j-1]stl[i-1][j]*j)%mod;}}f[0]1;for(int i1;ik;i) f[i]f[i-1]*i%mod;inv[k]ksm(f[k],mod-2);for(int ik-1;i0;i--) inv[i]inv[i1]*(i1)%mod; } int read() {int sum0,cgetchar();while(c48||c57) cgetchar();while(c48c57) sumsum*10c-48,cgetchar();return sum; } int main() {nread(),kread();init();for(int i1,x,y;in;i){xread(),yread();add(x,y),add(y,x);}dfs(1,0);solve(1,0);for(int i0;ik;i) Ans(Ansstl[k][i]*f[i]%mod*ans[i])%mod;printf(%lld,Ans); }
http://wiki.neutronadmin.com/news/405192/

相关文章:

  • 手机网站会员中心模板免费公司介绍网站怎么做
  • 免费企业黄页查询网站网页分为哪几种类型
  • 做网站的公司dw网页制作教程个人网站
  • 奇墙网站建设住房和城乡建设部建造师官网
  • 网站错误代码500像素人物制作网站
  • 网站开发团队架构淘宝官网首页网站
  • 外包做网站需要多少钱中装建设属于什么板块
  • 东莞网站改版高端网站定制平台
  • 北京市建设工程审核网站scf900色带
  • xp系统做网站服务器吗php开发网站
  • 郑州建设厅官方网站网站建设发文章几点发比较合适
  • 河北建设工程招标投标协会网站软件前端开发主要做什么
  • 成都的网站建设开发公司面包屑导航的网站
  • 多少钱做网站做网站怎么写代码
  • 国外可以做推广的网站吗wordpress 开头空格
  • 深圳做二类医学学分的网站无锡建设市场网站
  • 雪域什么网站是做电影的用ftp做网站
  • 网站空间申请微信平台微商城
  • 小公司做网站的好处自助发稿
  • 成都 广告公司网站建设链接点击量软件
  • 广州商城型网站建设宁波seo网络推广报价
  • 门户网站建设文案怎么做网站上翻译泰剧
  • 贵阳企业网站建设制作怎么模仿别人做网站
  • 网站备案接入商网络广告营销特性
  • 建设网站模块需要哪些群辉装wordpress
  • 整站优化费用网站怎么做图片动态图片大全
  • 家居网站开发项目计划书网站ui设计
  • 网站建设公司文案给公司在百度上做网站
  • 公司快速建站汽车网络营销推广方案
  • 建设银行网站修改用搬瓦工做网站