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

【abc180F】Unbranched - Harvey

题意

问有多少个满足以下条件且有 \(n\) 个点 \(m\) 条边的图:

  1. 没有自环
  2. 每个点的度最大为 \(2\)
  3. 最大的连通块大小恰好为 \(L\)

思路

首先分析:由于每个点的度最大为 \(2\),所以可以判断每个联通块要么是链,要么是环。
所以可以设计状态 \(f_{i,j}\) 表示有 \(i\) 个点,\(j\) 条边的满足条件的图的个数。

  • 对于长为 \(i\) 的链,有 \(\frac{i!}{2}\) 种方案。
  • 对于长为 \(i\) 的环,有 \(\frac{(i-1)!}{2}\) 种方案(原排列)。

除以 \(2\) 是为了去重。
那如何解决连通块之间的去重问题?可以采用钦定最小值的方法,则我们在 \(n\) 个点里面选 \(i\) 个点出来组成一个连通块的方案数为 \(\binom{n-1}{i-1}\)\(-1\) 是因为钦定了最小值。
则有转移式:

\[f_{i,j} = f_{i-t,j-t+1} * \binom{n-i+t-1}{t-1} \frac{t!}{2} \]

\[f_{i,j} = f_{i-t,j-t} * \binom{n-i+t-1}{t-1} \frac{(t-1)!}{2} \]

大小为 \(1\) 的链和大小为 \(2\) 的环不用除以 \(2\),因为不重。

#include<bits/stdc++.h>
#define ll long longusing namespace std;const ll N = 305,mod = 1e9+7,inv = 500000004;int n,m,L;
ll f[N][N];
ll C[N][N],fac[N];void init() {C[0][0]=1,fac[0]=1;for(int i=1;i<=300;i++)fac[i]=fac[i-1]*i%mod;for(int i=1;i<=300;i++){C[i][0]=1;for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;}
}void add(ll &x,ll y){(x+=y)%=mod;
}ll DP(ll lim){memset(f,0,sizeof(f));f[0][0]=1;for(int i=1;i<=n;i++){for(int j=0;j<=m;j++){for(int t=1;t<=min(lim,(ll)i);t++){if(t>1 && j>=t)add(f[i][j],1ll*f[i-t][j-t]%mod*C[n-i+t-1][t-1]%mod*fac[t-1]%mod*(t==2 ? 1 : inv)%mod);if(j>=t-1)add(f[i][j],1ll*f[i-t][j-t+1]%mod*C[n-i+t-1][t-1]%mod*fac[t]%mod*(t==1 ? 1 : inv)%mod);}}}return f[n][m];
}
int main() {cin>>n>>m>>L;init();cout<<(DP(L)-DP(L-1)+mod)%mod;return 0;
}
http://www.rkmt.cn/news/7015.html

相关文章:

  • ROS2之节点
  • 详细介绍:如何在公众号接入海外招聘数据分析智能体
  • 密力根油滴实验实验报告
  • 来点人瑞平我
  • 在Unity2021中使用Profiler的Deep Profile功能时内存超高怎么办? - 指南
  • 【P2051】中国象棋 - Harvey
  • Min-Max 容斥小记
  • 【POJ1737】Connected Graph - Harvey
  • 详细介绍:VirtualBox 免费轻量的全能虚拟机,跨平台系统随心装
  • 实用指南:C++ 类型衰变(Type Decay)
  • 某交互题选讲的补题记录
  • 奶龙抽象语录
  • 详细介绍:javascript文本长度检测与自动截取,用于标题长度检测
  • 解题报告-P11670 [USACO25JAN] Cow Checkups S
  • 解码C语言运算符
  • Sort方法学习(伪代码记录)
  • 完整教程:一篇读懂Pormise!!【前端ES6】
  • P9753 [CSP-S 2023] 消消乐
  • Jenkins CVE-2018-1000600漏洞利用与SSRF攻击分析
  • 详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
  • 深入解析:PYcharm——pyqt音乐播放器
  • 专题:Python实现贝叶斯线性回归与MCMC采样数据可视化分析2实例|附代码数据
  • CF 2127F Hamed and AghaBalaSar
  • “Sequential Thinking MCP Server 和codex等AI工具本身任务拆解功能对比
  • 题解:P2624 [HNOI2008] 明明的烦恼
  • XXL-JOB (1)
  • 记录---Vue3对接UE,通过MQTT完成通讯
  • 单例模式
  • apache修改默认位置
  • 实用指南:YOLOv11的旋转目标检测改进-(扩展检测头支持旋转框预测,适配遥感场景)