首页 > 其他分享 >一个和prufer序相关的组合问题

一个和prufer序相关的组合问题

时间:2024-05-22 17:19:41浏览次数:23  
标签:frac val 组合 sum 根树 相关 binom prufer leqslant

对于所有长为 \(n\) 值域在 \([1,m]\) 的正整数序列,对于每一个 \(1\leqslant i \leqslant m\) 记 \(c_{i}\) 表示 \(i\) 在 \(a\) 中的出现次数,定义其权值为 \(\prod_{i=1}^{m}c_{i}^{c_{i}+k}\),求所有序列的权值和对一个大质数 \(p\) 取模的结果(特别的,我们定义 \(0^0=1\),且对于负整数 \(k,0^k=0\))

数据范围:\(n\leqslant 5\times 10^6,-10\leqslant k \leqslant 10\),\(k\) 为整数。

当 \(k=-1\) 时考虑 \(i^{i−1}\) 的组合意义:大小为 \(i\) 的有标号有根树数量,答案即把 \(n\) 个有标号点分为 \(m\) 棵有根有标号树的方案数。加一个超级根 \(0\),并钦定 \(deg_{0}=m\),且和 \(0\) 相连的点为根即可,答案为 \(mn^{n-m-1}m!\binom{n}{m}\)。

当 \(k=0\) 时可以设计一个这样的组合意义:大小为 \(i\) 的有标号有根树森林,设树的个数为 \(t\),定义该森林的权值为 \(t!\),则所有森林权值和为 \(i^i\) 。证明:\(i^i\) 实际上可以视为一个大小为 \(i\) 的无根树,选一条允许为单点的有向链,现在将有向链上的边断掉,如果形成了 \(d\) 棵有根树,那么串回成原来的就有 \(d!\) 种方案。现在考虑在合并时的生成函数,由于是 \(\text{EGF}\),除以 \(d!\) 后变成了求 \([\frac{x^w}{w!}](\sum_{i=0}^{n}x^i)^m\),即 如果最终形成了 \(w\) 个有根树,则方案数为 \(w!\binom{w+m-1}{m-1}\)。

现在对于任意的 \(k\),可以想办法构造一个 \(val_{i}\) 满足 \(\sum_{j=0}^{i}ji^{i-j-1}val_{j}\binom{i}{j}=i^{i+k}\),将其倒过来即 \(val_{i}=i^{i+k}-\sum_{j=0}^{i-1}ji^{i-j-1}val_{j}\binom{i}{j}\),经过打表可以发现 \(val_{i}={i+k\brace i}i!\)(特别的对于 \(a<0\) 的 \(a\brace b\),我们定义 \({a\brace b}=\sum_{i=0}^{b}(-1)^{b-i}\binom{b}{i}i^a\),更加直观的解释其实是将 \(a\) 一开始就加上 \(p-1\),此时 \({a\brace b}\equiv{a+p-1\brace b}\equiv\sum_{i=0}^{b}(-1)^{b-i}\binom{b}{i}i^{a+p-1}(\text{mod p})\),这样的操作是好的,因为 \(i^{i+k}\equiv i^{i+k+p-1}(\text{mod p})\)。

接下来我们认为 \(k\geqslant 0\),如果 \(k<0\) 可以将 \(k\) 置为 \(k+p-1\),可以构造如下映射进行说明:

令 \(A\) 为长度为 \(n+k\) 值域在 \([1,n-1]\) 的序列构成的集合,令 \(B\) 为长度为 \(n-1\) 值域在 \([0,n]\) 的序列构成的集合,对于 \(B\),如果其有 \(d\) 个 \(0\),实际上对应着大小为 \(n\),有 \(d+1\) 个有根树的森林。所以在这样的设计中,如果对于任意的 \(d\) 如果其对应的 \(A\) 中的序列个数都相同为 \(val_{d+1}\),那么我们就得到了一组合法的 \(val\)。

实际上这个是成立的,令 \(a\in A\),令一个指针 \(p\) 依次从小到大从 \(n\) 遍历到 \(n+k\),每次进行如下操作:

令 \(q=a_{p}\),将 \(a_{p}\) 置为 \(0\),\(p\) 置为 \(q\)。

由于最后所有 \(i\geqslant n\) 的 \(a_{i}\) 全部变成了 \(0\),可以将其删去,现在得到的 \(a\in B\)。于是只要对于每一个 \(b\in B\),求有多少个 \(a\in A\) 可以得到它。令一个长度为 \(k+1\) 的序列 \(c\),其中 \(c_{i}\) 表示 \(p=n+i-1\) 的初始加入时新增的不是自己的 \(0\) 的个数。

对于 \(p=n\) 时,其所产生的 \(0\) 构成了一条环外挂一条链的结构,将环接入链的那条边断掉后有 \(c_{1}!\) 种链的生成方案,而接入的那条边指向的点有 \(c_{1}+1\) 种方案(因为包括了 \(n\)),类似分析 \(p>n\) 的可以得到有 \(\prod_{i=1}^{k+1}c_{i}!(1+\sum_{j=1}^{i}c_{j})\) 种方案,对于所有 \(\sum_{i=1}^{k+1}c_{i}=d\) 求和得到的就是 \(val\) 的值(但由于要将所有 \(0\) 分配给不同的 \(c\),所以还有 \(\frac{d!}{\prod_{i=1}^{k+1}c_{i}!}\) 的额外贡献),实际上贡献为 \(d!\sum_{i=1}^{k+1}(1+\sum_{j=1}^{i}c_{j})=(d+1)!\sum_{i=1}^{k}(1+\sum_{j=1}^{i}c_{j})\)。

实际上相当于求所有正整数序列 \(s\) 满足 \(1\leqslant s_{1}\leqslant s_{2}\leqslant ...\leqslant s_{k}\leqslant d+1\),贡献为 \((d+1)!\prod_{i=1}^{k}s_{i}\),将其从左到右看作一条格路,将每次 \(s\) 的增加想象为新开一个盒子,将每次下标的向右移动想象为插入一个已有的盒子,需要新开 \(d+1\) 次盒子,插入 \(k\) 次已有的盒子,则可知方案数为 \({d+1+k\brace d+1}(d+1)!\),实际上就是 \({i+k\brace i}i!\)。

于是令 \(F=(\sum_{i=0}^{n}{i+k\brace i}x^i)^m\),则最终答案为 \(\sum_{i=1}^{n}in^{n-i-1}\binom{n}{i}[\frac{x^i}{i!}]F\),对于 \(k<0\) 的部分,由于只有当 \(i+k<0\) 的时候 \(i+k\brace i\) 才有值,所以直接使用计算低阶多项式的 \(m\) 次幂的方法即可。

当 \(k>0\) 时,令 \(G_{i}=\sum_{i=0}^{\infty}{j+i\brace j}x^j\),有 \(G_{0}=\frac{1}{1-x}\),\(G_{i}=\frac{G_{i-1}'x}{1-x}\),令 \(H_{i}=G_{i}(1-x)^{2i+1}\),则 \(\frac{H_{i}}{(1-x)^{2i+1}}=\frac{{(\frac{H_{i-1}}{(1-x)^{2i-1}})'}x}{1-x}\),化简可得 \(H_{i}=(H_{i-1}x)'+2iH_{i-1}-(H_{i-1}x^2)'\),\(H\) 为一个 \(O(k)\) 阶多项式,实际上写出递推式后可以发现 \(H\) 就是二阶欧拉数。

现在相当于对于一个低阶多项式 \(W\),要求 \((\frac{W}{(1-x)^{2k+1}})^m\),这个同样可以用计算低阶多项式的 \(m\) 次幂的求导大法类似解决。

复杂度可以做到 \(O(nk)\),同时对于 \(k=-2\) 的构成 \(n\) 个点 \(m\) 棵无根树的森林计数可以使用该做法导出一个容斥做法。

标签:frac,val,组合,sum,根树,相关,binom,prufer,leqslant
From: https://www.cnblogs.com/zhouhuanyi/p/18206749

相关文章

  • pg权限相关
     1.查看某个表授予的权限进入到具体的库查询SELECTgrantee,table_schema,table_name,string_agg(privilege_type,',')asprivilege_typeFROMinformation_schema.role_table_grantsWHEREtable_name='tb_aa'groupbygrantee,table_schema,table_name;grant......
  • LLM相关损失函数
    信息熵:信息熵torch代码event={'a':2,'b':2,'c':4}#信息熵分:1.5event2={'a':1,'b':1,'c':1}#信息熵分:1.585p_e=[v/sum(event.values())forvinevent.values()]en_e=[item*torch.log2(......
  • 微服务相关面试题
    什么是微服务?微服务,又称微服务架构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合。简单来说就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。微服务之间是如何进行通信的?同步通信方案:对外REST,对内RPC。......
  • spring boot项目相关
    如何进行打包部署:执行maven生命周期中的package命令生成jar包,在项目目录结构下通过java-jar运行jar包,jar包部署要求服务器必须有jre环境。springboot项目如何进行属性配置,(4)在未打包前可以通过配置文件进行修改,但是打包后如何进行修改,()代表同时拥有是优先级大小命令行参数......
  • 解决ROS国内rosdep init和update的相关问题
    解决ROS国内rosdepinit和update的相关问题解决办法,使用国内鱼香ROS的镜像rosdepc,感谢大佬无私馈赠。sudopip3installrosdepcsudorosdepcinitrosdepcupdate#更新已经不在支持的ROS依赖关系rosdepcupdate--include-eol#安装功能包的相关依赖rosdepcinstall--fr......
  • es集群、索引压缩以及相关度评分计算
    es的集群需要有n/2+1的票数才能当选主节点最好采用2+1部署方案:即3节点集群有一个节点设置为投票节点,这样可以更高效率的选出主节点 1.es的选举,选举过程可以看一下源码首先查找存活的节点,包括自己,然后对节点进行过滤,找出具有投票权的节点进行投票,记录票数,选出临时master(还不是......
  • linux用户组相关操作
    建新用户adduserusername//新建用户passwdusername//给user设置密码建工作组groupaddtest//建立test工作组新建用户的同时增加工作组useradd-gtestusername//新建user并添加到test组给已有用户增加工作组usermod-Ggroupnameusername或者gpasswd-ausergro......
  • 如何从多个文件夹里各提取相应数量的文件放一起到新文件夹中形成多文件夹组合
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 首先,说明一下情况文件夹:1、2、3里面分别放置了各100张动物的图片,模拟实际情况的各种文件操作:这里演示的是从3个文件夹里各取2张图片实际情况中,可以从多个文件夹里进行多个文件提取进行放置如:可以从2个文件......
  • 关于在windows电脑上实现linux相关
    windows电脑毫无疑问是我们使用最多的电脑,也有一些人在接触Linux后变成了Linux的狂热分子。虽然Linux很好很酷,但是windows才是我们最熟悉的,而且相对稳定一些,因此这部分人往往喜欢用Linux但是又离不开windows,因此本篇文章在此讨论相关内容虚拟机1.WSLWSL(WindowsSubsystemfor......
  • DockerDesktop安装指南以及Windows下WSL2和 Hyper-V相关问题追查
    文章原创不易,转载请注明来源,谢谢!一、 问题周末在家,给自己的老的台式机安装DockerDesktop。电脑配置是处理器Intel(R)Core(TM)[email protected]  3.30GHz    机带RAM16.0GB(15.9GB可用)    系统类型64位操作系统,基于x64的处理器   ......