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

题解:P14270 We Love Forest 加强版

\(\text{Link}\)

题意

给定一张 \(n\) 个点和 \(m\) 条边,对于 \(\forall i\in[1,n)\) 求出选择图中 \(i\) 条边的方案数,使得选出的边不成环。对 \(998244353\) 取模。

\(n\le 20\)\(m\le 500\)

思路

很明显是集合幂级数题目且不是很直接,直接考虑逐点牛顿迭代。

首先求出 \(F_S\) 表示点集 \(S\) 的生成树个数,和边双连通-连通变换做法类似,按照两端点编号的最大值的顺序进行加边,枚举 \(i\) 表示允许加入两端点编号最大值为 \(i\) 的边即可。每个 \(i\) 都需要一次大小为 \(2^i\) 的集合幂级数 \(\exp\) 进行合并,时间复杂度 \(O(2^nn^2)\)

接下来是考虑合并若干森林。如果选出了 \(i\) 条边,那么就会形成 \(n-i-1\) 个连通块,对应方案数即为 \([x^U]F^{n-i-1}\),需要对 \(\forall i\in[1,n)\) 求出 \([x^U]F^i\),这与多项式复合集合幂级数的形式是一致的。但是不同的是,P10461 需要对每个 \(S\) 求出 \([x^S]\sum_i a_iF^i\),而此处需要求出每一个 \([x^U]F^i\) 的值。

本题实际上相当于多起点单终点的 DP,P10461 需要求出的是从唯一起点到每个终点的路径数分别有多少路径(虽然实际上为了优化时间复杂度,状态被翻转为多起点多终点,但是只需要求任一起点到每个终点的路径数之和),而本题需要求出每一个起点到唯一终点分别有多少路径。这种情况我们要翻转转移路径,或者说称其为转置原理。

依然逐点牛顿迭代,但我们将流程翻转。从大到小枚举 \(i\),删去方案中 \(\max S=i\) 的连通块 \(S\)

\(H_{k,S}\) 表示已经删除了 \(k\) 次,剩余的点集为 \(S\) 的方案数,另记集合幂级数 \(F'_S\),在 \(\max S=i\) 时等于 \(F_S\),其余时刻等于 \(0\)。注意此时 \(k\) 的上界为 \(n-i\),且集合幂级数 \(H_k,F'\) 的有效长度均为 \(2^i\)

那么再从大到小枚举 \(k\),将 \(H_{k}\)\(F'\)子集差卷积的结果加给 \(H_{k+1}\)。其中子集差卷积即为求出:

\[F_S=\sum_{T,S\cap T=\varnothing}G_T\cdot H_{S\cup T} \]

类似形式幂级数的差卷积,翻转 \(F,H\) 即可。

总时间复杂度为 \(\sum_i2^ii^2(n-i)=O(2^nn^2)\),可以通过。

:::info[核心代码]

int n,m,a[N][N],u,F[S],G[N],R[N][S],T1[S],T2[S];
inline void CalcTree(){F[0]=1;for(int i=0;i<n;i++){Poly::init(1<<i);for(int s=0;s<(1<<i);s++){if(s){int lb=__lg(s&-s);T2[s]=T2[s^(1<<lb)]+a[i][lb];}T1[s]=1ll*F[s]*T2[s]%mod;}Poly::Exp(T1,T1);for(int s=0;s<(1<<i);s++)F[s^(1<<i)]=T1[s]; }
}
inline void CompR(){R[0][u-1]=1;for(int i=n-1;i>=0;i--){Poly::init(1<<i);for(int j=0;j<(1<<i);j++)T1[j]=F[j^(1<<i)];for(int j=n-i-1;j>=0;j--){for(int k=0;k<(1<<i);k++)T2[k]=R[j][k^(1<<i)];Poly::MulR(T2,T1,T2);for(int k=0;k<(1<<i);k++)inc(R[j+1][k],T2[k]);}}for(int i=0;i<=n;i++)G[i]=R[i][0];
}
int main(){n=read(),m=read(),u=1<<n;while(m--){int u=read()-1,v=read()-1;a[u][v]++,a[v][u]++;}Prefix(u);CalcTree(),CompR();for(int i=1;i<n;i++)write(1ll*G[n-i]*fac[i]%mod),putc('\n');flush();
}

:::

http://www.jsqmd.com/news/33915/

相关文章:

  • 2025年公司股权律师排名白皮书,权威公司股权律师排名推荐
  • 什么是跨网文件安全交换系统?可以解决哪些问题?
  • 2025 年清淤公司最新推荐排行榜权威发布:深度剖析技术创新与市场口碑的优质清淤企业水下清淤 / 清淤施工公司推荐
  • 量化选股与量化交易第854篇:通达信海神反转 - Leone
  • CSP-S2025 游记:没人告诉我 NOI Linux 有编译器 bug 啊?
  • 2025年权威刑事律师年度排名,著名刑事律师怎么收费
  • 多头注意力论文的作用
  • 2025年深圳专业离婚律师事务所推荐:帮我推荐经验丰富的离婚律师
  • 2025年口碑好的自上料搅拌车厂家最新热销排行
  • 2025年耐用的防水三防灯热门厂家推荐榜单
  • 2025企业该选什么CMDB系统:选对配置管理平台,构建数字化运维基石
  • 2025 年方涵源头厂家最新推荐榜单:发掘供应稳定实力企业,涵盖水泥、混凝土、预制等各类方涵优质品牌
  • 2025年口碑好的开式冷却塔厂家最新热销排行
  • 2025 年国内水泥管厂家最新推荐排行榜:聚焦权威认证实力企业,精选前五优质品牌供工程采购参考预应力混凝土水泥管/钢承口水泥管公司推荐
  • 超级意识流数分笔记(抱佛脚版)
  • 2025年知名的广场音乐喷泉厂家最新热销排行
  • 2025年口碑好的热轧无缝钢管高评价厂家推荐榜
  • 论语
  • 2025年比较好的活塞杆液压缸TOP品牌厂家排行榜
  • 模型决定可能性,交付决定可行性:AI Agent 落地的真正分水岭
  • 2025年有实力全自动贴体机TOP品牌厂家排行榜
  • 2025年热门的高速电吹风开关TOP品牌厂家排行榜
  • 2025年比较好的定量包装机行业内知名厂家排行榜
  • 2025年11月家用电梯品牌十大推荐:主流品牌排行与性能横评完整指南
  • 2025年靠谱的商用爬杆挂面机厂家最新TOP实力排行
  • cad转换pdf怎么转换?快看这篇文章,详细教程!
  • 2025年热门的小角度缓冲铰链厂家最新权威推荐排行榜
  • 2025年11月家用电梯品牌十大推荐:主流机型对比与安装方案全攻略
  • 2025年专业的橡胶带式过滤机厂家最新权威推荐排行榜
  • 2025年11月室内电梯品牌推荐:十大热门品牌排行与综合评价报告