JZOJ 5351. 【NOIP2017提高A组模拟9.7】简单无向图
题目大意
给定 \(n\) 个度数为 \(\in [1,2]\) 之间的点,求能组成多少种简单无向图(可不连通,点与点之间有别)
分析
显然答案只与 \(n1,n2\) 有关
那么 \(dp\)?(我也不知道为什么)
设 \(f_{i,j}\) 表示当前状态的图用了 \(i\) 个点,目前其度数为 \(1\);\(j\) 同理,度数为 \(2\)
四种转移:
- 加入两个度数为 \(1\) 的点,构成一条新链
- 加入度数形如 \(1-2-1\) 一条链
- 在某条链中插入两个度数为 \(2\) 的点
- 变链成环,加入三个度数为 \(2\) 的点
我也不知道为什么这么转移
然后具体统计看代码
\(Code\)
#include<cstdio>
using namespace std;
typedef long long LL;
const int N = 2005;
const LL P = 998244353;
int d[N] , n , n1 , n2;
LL ans , f[N][N];
int main()
{
freopen("graph.in" , "r" , stdin);
freopen("graph.out" , "w" , stdout);
scanf("%d" , &n);
for(register int i = 1; i <= n; i++)
scanf("%d" , &d[i]) , (d[i] == 1 ? n1++ : n2++);
f[0][0] = 1;
for(register int j = 0; j <= n2; j++)
for(register int i = 0; i <= n; i++)
{
if (!f[i][j]) continue;
if (!j) f[i + 2][j] = (f[i + 2][j] + f[i][j] * (i + 1)) % P;
f[i + 2][j + 1] = (f[i + 2][j + 1] + (i + 2) * (i + 1) / 2 % P * f[i][j] % P) % P;
f[i][j + 2] = (f[i][j + 2] + f[i][j] * i % P * (j + 1)) % P;
if (i >= 2) f[i - 2][j + 3] = (f[i - 2][j + 3] + (j + 2) * (j + 1) / 2 % P * f[i][j]) % P;
}
printf("%lld" , f[n1][n2]);
}
JZOJ 5351. 【NOIP2017提高A组模拟9.7】简单无向图的更多相关文章
- JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠
JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...
- [JZOJ 100026] [NOIP2017提高A组模拟7.7] 图 解题报告 (倍增)
题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意 ...
- 【NOIP2017提高A组模拟9.7】JZOJ 计数题
[NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 D ...
- JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团
100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms Memory Limits: 131072 KB Detailed Limits Got ...
- JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线
5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...
- JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)
5307. [NOIP2017提高A组模拟8.18]偷窃 (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Description ...
- JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)
5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...
- JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)
5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...
- 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
[NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...
随机推荐
- Docker 工作原理分析
docker 容器原理分析 docker 的工作方式 Namespace 容器对比虚拟机 Cgroups 容器看到的文件 Mount namespace chroot rootfs Volume(数据 ...
- Zabbix技术分享——监控windows进程资源使用情况
监控系统进程资源的使用情况是IT运维的常规操作.在实际工作中,运维人员有可能遇到可以使用Zabbix Agent监控linux系统进程,却无法监控windows系统进程的情况.这是因为Zabbix A ...
- 使用VMware安装Linux(CentOS)操作系统
使用VMware安装CentOS 6.4 环境:Windows7 , VMware Workstation10, CentOS6.4 为什么选择CentOS ? 主流: 目前的Linux操作系统主要应 ...
- Maven工程卡在Resolving Maven dependencies,长时间不变
添加:-Xms1024m -Xmx2048m 点apply.ok 秒解决
- STL map容器常用API
map容器:键值和实值是分开的,排序规则按照键值排序 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<map& ...
- 【世界杯黑技术专题】「原理探索专题」一文解读一下“卡塔尔世界杯”的先进技术之半自动越位技术SAOT+比赛用球Al Rihla
盘点卡塔尔世界杯的先进黑科技 归纳总结一下目前世界杯的先进的黑科技有哪些?大致可以划分为以下几点. 半自动化越位技术 比赛用球Al Rihla 球场智能空调 可持续利用的体育场 便利的数字设施和App ...
- Python实验报告(第5章)
实验5:字符串及正则表达式 一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例01:使用字符串拼 ...
- Windows下Mariadb中文乱码问题
win10 在命令行使用Mariadb出现无法插入中文 并且之前正确插入的中文也无法正常显示了 ERROR 1366 (22007): Incorrect string value: '\xB1\xB ...
- 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.5.0)发布过去 9 个月了,这一次痞子衡为大家带来了版本升级 v4.0.0,这个版本主要有两个重要更新需要跟大家 ...
- python之路48 django 视图层、模板层
视图层之必会三板斧 用来处理请求的视图函数都必须返回HttpResponse对象 完全正确 class HttpResponse: pass return HttpResponse() def ren ...