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

个体工商户经营范围做网站竞价推广出价多少合适

个体工商户经营范围做网站,竞价推广出价多少合适,越秀做网站,那些网站做的非常好看的Prufer序列 起源于对 C a y l e y Cayley Cayley定理的证明,但是其功能远不止于此 现在考虑将一棵n个节点的树与一个长度为n-2的prufer序列构造对应关系 T r e e − > P r u f e r : Tree->Prufer: Tree−>Prufer: ①从树上选择编号最小的叶子节点&#x…

Prufer序列

起源于对 C a y l e y Cayley Cayley定理的证明,但是其功能远不止于此
现在考虑将一棵n个节点的树与一个长度为n-2的prufer序列构造对应关系

  • T r e e − > P r u f e r : Tree->Prufer: Tree>Prufer:

    ①从树上选择编号最小的叶子节点,序列的下一位为其父节点的编号。

    ②删去该叶子节点。

    ③重复①和②,直到树只剩下两个节点,此时序列的长度刚好为 n−2 。

  • P r u f e r — > T r e e : Prufer—>Tree: Prufer>Tree:

    ①选择编号最小的叶子节点(即未出现在序列中的节点),其父节点就是序列的第 i ( i 初始为1)个元素。

    ②由性质可得,其父节点的度数为其出现次数+1。将该叶子节点删去,其父节点度数-1。若度数变成1,则父节点也成为叶子节点。

    ③将 i 加一,然后重复①和②,直到序列的每一个元素都使用完毕。

ll p[N];
ll d[N];//度数
ll f[N];//连边
ll ans=0;
void Prufer_To_Tree(ll n)
{//f记录1-n-1的连边情况for(int i=1;i<=n-2;++i) cin>>p[i],d[p[i]]++;p[n-1]=n;for(int i=1,j=1;i<n;++i,++j){while(d[j]) j++;f[j]=p[i];//把最小的叶往prufer序列第一个点上接 对应减掉度数while(i<n&&!--d[p[i]]&&p[i]<j) f[p[i]]=p[i+1],i++;//如果序列第一个点减掉度数后产生了新的更小的叶 就往序列下一个点上接}for(int i=1;i<=n;++i) ans^=1ll*i*f[i];
}
void Tree_To_Prufer(ll n)
{for(int i=1;i<n;++i) cin>>f[i],d[f[i]]++;for(int i=1,j=1;i<=n-2;++i,++j){while(d[j]) j++;p[i]=f[j];while(i<=n-2&&!--d[p[i]]&&p[i]<j) p[i+1]=f[p[i]],i++;}for(int i=1;i<=n-2;++i) ans^=1ll*i*p[i];
}

由此我们发现两者是一一对应的,也就是双射,所以大小为n的有标号无根树的个数等于长度为 n − 2 n-2 n2的prufer序列的个数,自然为 n n − 2 n^{n-2} nn2 C a y l e y Cayley Cayley定理得证

Prufer序列的性质

由Prufer序列构造的过程,我们可以发现其具有两个显而易见的性质。

  • 构造完后剩下的两个节点里,一定有一个是编号最大的节点。

  • 对于一个 n 度的节点,其必定在序列中出现 n−1 次。因为每次删去其子节点它都会出现一次,最后一次则是删除其本身。一次都未出现的是原树的叶子节点。

应用

1、无向完全图的不同生成树数:

n n − 2 n^{n−2} nn2

2、 n 个点的无根树计数:

同上问题。

3、 n 个点的有根树计数:

对每棵无根树来说,每个点都可能是根,故总数为 n n − 2 × n = n n − 1 n^{n−2}×n=n^{n−1} nn2×n=nn1

4、 n 个点,每点度分别为 d i d_i di 的无根树计数:

显然就是一个多重集,答案为 ( n − 2 ) ! ∏ i = 1 n d i − 1 \frac{(n-2)!}{\prod_{i=1}^{n}d_i-1} i=1ndi1(n2)!

5、 有标号的完全二分图 K n , m K_{n,m} Kn,m的生成树个数为 n m − 1 m n − 1 n^{m-1}m^{n-1} nm1mn1:

考虑将其生成树的prufer序列按照原本顺序分成 f i ≤ n , f i > n f_i\leq n,f_i>n fin,fi>n两部分。

对于 f i ≤ n f_i\leq n fin的部分,一定是删去某个标号 > n >n >n的点之后留下 f i f_i fi的,因为这是一张二分图。所以该部分的点一定恰好有 m − 1 m-1 m1个(右部有m个点,整张图删完之后一定在左右部各留下一个点,所以右部一共要删去 m − 1 m-1 m1个点)

f i > n f_i>n fi>n部分同理。

所以此时还是可以用一个prufer序列与合法生成树对应,故方案数为 n m − 1 m n − 1 n^{m-1}m^{n-1} nm1mn1

Tips:

一般要特判n=1的情况

例题

Valuable Forests

大意:

定义一个树的权值为其所有节点的度数的平方和,森林的权值为所有树的权值和。求大小为n的所有有标号森林的权值和

思路:

f i f_i fi表示大小为i的所有有标号森林的权值和,也就是答案

考虑对于最后一个点所在的树的大小为k的情况

f n = ∑ k = 1 n ( n − 1 k − 1 ) f n − k m k + ( n − 1 k − 1 ) g k h n − k f_n=\sum_{k=1}^{n}\binom{n-1}{k-1}f_{n-k}m_k+\binom{n-1}{k-1}g_kh_{n-k} fn=k=1n(k1n1)fnkmk+(k1n1)gkhnk

其中 m i m_i mi表示大小为 i i i的有标号无根树的个数, g i g_i gi表示大小为 i i i的所有有标号无根树的权值和, h n − k h_{n-k} hnk表示大小为 n − k n-k nk的森林的数量。 ( n − 1 k − 1 ) \binom{n-1}{k-1} (k1n1)是因为枚举的k的含义是n所在树的大小,我要从剩下 n − 1 n-1 n1个点里面选 k − 1 k-1 k1个点。如果不这样枚举的树的组合就会算重。

m n m_n mn很简单: n = 1 n=1 n=1 m 1 = 1 m_1=1 m1=1,否则 m n = n n − 2 m_n=n^{n-2} mn=nn2

对于 g n g_n gn,我们枚举所有度数为i的贡献

转化到prufer序列中看这个问题,度数为i,表示出现了 i − 1 i-1 i1次,所以强制选定对应的数字以及位置,剩下的 n − 1 n-1 n1个数随便放

g n = ∑ i = 1 n − 1 i 2 n ( n − 2 i − 1 ) n − 1 n − 1 − i g_n=\sum_{i=1}^{n-1}i^2n\binom{n-2}{i-1}{n-1}^{n-1-i} gn=i=1n1i2n(i1n2)n1n1i

h n h_n hn的更新思路和 f f f差不多,枚举最后一个点所在的树的大小即可

h n = ∑ i = 1 n ( n − 1 i − 1 ) h n − i m i h_n=\sum_{i=1}^{n}\binom{n-1}{i-1}h_{n-i}m_i hn=i=1n(i1n1)hnimi

cf 156D

大意:

给定n个点以及m条连边,记最少添加T条边使得整张图连通,问有多少种恰好添加T条边的方案使得图连通

思路:

记当前连通块个数为k,则T=k-1

对于每一个连通块,其大小为 a i a_i ai,如果其度数为 d i d_i di的话,我们可以在以连通块为单位的情况下得到生成树个数为 ( k − 2 d 1 − 1 , d 2 − 1... d k − 1 ) \binom{k-2}{d1-1,d2-1...d_k-1} (d11,d21...dk1k2)

对于每一个连通块,固定连边的标号顺序(比如第1条边来自标号最小的连通块,依次类推),那么此时总方案数为 ( k − 2 d 1 − 1 , d 2 − 1... d k − 1 ) ∗ ∏ i = 1 k a i d i \binom{k-2}{d1-1,d2-1...d_k-1}*\prod_{i=1}^{k}a_i^{d_i} (d11,d21...dk1k2)i=1kaidi,因为每一条边都可以有 a i a_i ai种选择

所以答案为 ∑ ∑ d i = k − 2 ( k − 2 d 1 , d 2... d k ) ∗ ∏ i = 1 k a i d i + 1 = ∑ ∑ d i = k − 2 ( k − 2 ) ! ∏ i = 1 k d i ! ∗ ∏ i = 1 k a i d i + 1 \sum_{\sum d_i=k-2}\binom{k-2}{d1,d2...d_k}*\prod_{i=1}^{k}a_i^{d_i+1}=\sum_{\sum d_i=k-2}\frac{(k-2)!}{\prod_{i=1}^{k} d_i!}*\prod_{i=1}^{k}a_i^{d_i+1} di=k2(d1,d2...dkk2)i=1kaidi+1=di=k2i=1kdi!(k2)!i=1kaidi+1
= ( k − 2 ) ! ∏ i = 1 k a i ( ∑ ∑ i = 1 k d i = k − 2 ∏ i = 1 k a i d i d i ! ) =(k-2)!\prod_{i=1}^{k} a_i(\sum_{\sum_{i=1}^{k} d_i=k-2}\prod_{i=1}^{k}\frac{a_i^{d_i}}{d_i!}) =(k2)!i=1kai(i=1kdi=k2i=1kdi!aidi)

注意到 ( k − 2 ) ! ∏ i = 1 k a i (k-2)!\prod_{i=1}^{k} a_i (k2)!i=1kai是一个常数,我们只用看后面

记生成函数 f x = ∑ i = 0 inf ⁡ x i i ! = e x f_x=\sum_{i=0}^{\inf}\frac{x_i}{i!}=e^x fx=i=0infi!xi=ex

不难发现后面其实是k个函数 f a i f_{a_i} fai的卷积的某一项,故后面部分的答案为 [ x k − 2 ] ∏ i = 1 k e a i x = [ x k − 2 ] e n x = n k − 2 ( k − 2 ) ! [x^{k-2}]\prod_{i=1}^{k}e^{a_ix}=[x^{k-2}]e^{nx}=\frac{n^{k-2}}{(k-2)!} [xk2]i=1keaix=[xk2]enx=(k2)!nk2

所以最终答案为 n k − 2 ∏ i = 1 k a i n^{k-2}\prod_{i=1}^{k}a_i nk2i=1kai

http://www.ds6.com.cn/news/102660.html

相关文章:

  • 清新网站设计seo软件简单易排名稳定
  • 郑州哪家网站建设好中国新闻网
  • 镇江做网站营销目标分为三个方面
  • 自建网站如何被百度收录江北seo页面优化公司
  • 首都产业建设集团网站怎么开网站详细步骤
  • 做网站前后端的发布流程广告发布平台
  • 微企点建站怎么样搜索引擎的优化方法
  • 厦门做网页网站的公司合肥网络优化推广公司
  • 永嘉移动网站建设公司百度教育网站
  • 游戏开发师北京排名seo
  • 常德做网站公司哪家好seo管理与优化期末试题
  • 乌鲁木齐网站设计平台青岛百度关键词优化
  • wordpress 文章 新窗口企业网站优化外包
  • 网站挂百度推广百度竞价排名推广
  • 网站开发微信登录流程百度搜索风云榜排行榜
  • 口子网站怎么做百度竞价渠道代理
  • 网站建设yu陕西seo推广
  • 有培训做网站 小程序的学校唐老鸭微信营销软件
  • 印度网站建设多少钱十大流量平台
  • 查备案网站备案可以免费打开网站的软件
  • 做地图的网站软文代发布
  • 徐州市网站建设国外免费源码共享网站
  • 音乐网站要怎么做怎样建立网站免费的
  • 网站标题图片怎么做高端企业建站公司
  • 访问behance设计网站热门关键词
  • 青岛网站模板外链平台有哪些
  • 餐饮网站建设怎么建设的色盲测试图
  • 大学做机器人比赛的网站论坛杭州龙席网络seo
  • 网站后台栏目根据什么做的全网搜索软件
  • 成立公司法人有什么风险下载优化大师