[atARC115D]Odd Degree
考虑对于一棵树$G$,这个问题的答案——
当$k$为奇数时答案显然为0,否则从$V$中任选$k$个点,以任意一点为根,从底往上不难发现子图数量唯一
换言之,当$k$为偶数时,每一个合法(恰有$k$个奇度数的点)子图恰好对应于一种选择方案,即${|V|\choose k}$
当$G$是一张连通图时,继续来分析答案——
首先$k$仍要是偶数,且仍然考虑任选$k$点,并求出其一棵生成树
对于生成树以外的边,任意选每一条边是否加入子图,之后同样可以通过这棵生成树构造出一组方案,换言之每一组选点方案恰对应于$2^{|E|-|V|+1}$个子图,答案即${|V|\choose k}2^{|E|-|V|+1}$
有多个连通块时,显然每一个连通块独立,用$f_{i,j}$表示前$i$个连通块中选$j$个点,枚举最后一个所选的点转移即可,复杂度为$o(n^{2})$,可以通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 5005
4 #define mod 998244353
5 int n,m,x,y,mi[N],fac[N],inv[N],f[N],szV[N],szE[N],dp[N][N];
6 int c(int n,int m){
7 return 1LL*fac[n]*inv[m]%mod*inv[n-m]%mod;
8 }
9 int find(int k){
10 if (k==f[k])return k;
11 return f[k]=find(f[k]);
12 }
13 void merge(int x,int y){
14 x=find(x),y=find(y);
15 if (x==y)szE[x]++;
16 else{
17 f[x]=y;
18 szV[y]+=szV[x];
19 szE[y]+=szE[x]+1;
20 }
21 }
22 int main(){
23 mi[0]=fac[0]=inv[0]=inv[1]=1;
24 for(int i=1;i<N;i++)mi[i]=2*mi[i-1]%mod;
25 for(int i=1;i<N;i++)fac[i]=1LL*fac[i-1]*i%mod;
26 for(int i=2;i<N;i++)inv[i]=1LL*(mod-mod/i)*inv[mod%i]%mod;
27 for(int i=1;i<N;i++)inv[i]=1LL*inv[i-1]*inv[i]%mod;
28 scanf("%d%d",&n,&m);
29 for(int i=1;i<=n;i++){
30 f[i]=i;
31 szV[i]=1,szE[i]=0;
32 }
33 for(int i=1;i<=m;i++){
34 scanf("%d%d",&x,&y);
35 merge(x,y);
36 }
37 dp[0][0]=1;
38 int scc=0;
39 for(int i=1;i<=n;i++)
40 if (f[i]==i){
41 scc++;
42 for(int j=0;j<=n;j++)
43 for(int k=0;k<=min(j,szV[i]);k+=2)
44 dp[scc][j]=(dp[scc][j]+1LL*mi[szE[i]-szV[i]+1]*c(szV[i],k)%mod*dp[scc-1][j-k])%mod;
45 }
46 for(int i=0;i<=n;i++)printf("%d\n",dp[scc][i]);
47 }
[atARC115D]Odd Degree的更多相关文章
- cf#306D. Regular Bridge(图论,构图)
D. Regular Bridge time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- PAT1126:Eulerian Path
1126. Eulerian Path (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue In grap ...
- A1126. Eulerian Path
In graph theory, an Eulerian path is a path in a graph which visits every edge exactly once. Similar ...
- PAT A1126 Eulerian Path (25 分)——连通图,入度
In graph theory, an Eulerian path is a path in a graph which visits every edge exactly once. Similar ...
- 1126 Eulerian Path (25 分)
1126 Eulerian Path (25 分) In graph theory, an Eulerian path is a path in a graph which visits every ...
- PAT甲级 1126. Eulerian Path (25)
1126. Eulerian Path (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue In grap ...
- PAT 甲级 1126 Eulerian Path
https://pintia.cn/problem-sets/994805342720868352/problems/994805349851185152 In graph theory, an Eu ...
- 3.26-3.31【cf补题+其他】
计蒜客)翻硬币 //暴力匹配 #include<cstdio> #include<cstring> #define CLR(a, b) memset((a), (b), s ...
- PAT 1126 Eulerian Path[欧拉路][比较]
1126 Eulerian Path (25 分) In graph theory, an Eulerian path is a path in a graph which visits every ...
随机推荐
- WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)
问题: 线上正式环境调用WCF服务正常,但是每次使用本地测试环境调用WCF服务时长就是出现:套接字连接已中止.这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的.本地套接字超 ...
- 下载cnki硕博士论文的pdf版
每找到一篇心仪的硕博士论文时,总是迫不及待下载到本地吧. 可是接下来你只能选择caj格式. caj界面都用过吧,没用过,你也不会来这. 我就想看pdf版本的,怎么办呢?有办法! 重点来了,敲黑板: 1 ...
- 后台管理系统使用vue-element-admin搭建
近期在搞一个会议健康申报系统时,要搞一个后台,用到了vue-element-admin模板,使用的是PanJianChen(源码地址:https://github.com/PanJiaChen/vue ...
- Perl操作excel2007的模块
详细版:https://www.jianshu.com/p/84bda53827c8 第一种方法: 读写excel2007文档的perl模块: Spreadsheet::XLSX(读)和Spreads ...
- WeakMap与Map,使用WeakMap实现深拷贝循环引用问题
1.Map可以使用任意类型的key值,不限字符串,对象等. 2.WeakMap只能使用对象作为key值,是弱引用,当从WeakMap中移除时,会自动垃圾回收 3.Object只能用基本类型作为key值 ...
- 使用Servlet前Tomcat介绍
虚拟目录的映射方式:让tomcat服务器自动映射tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录.换句话说,tomcat服务器webapps目录中的web应用,外 ...
- 《手把手教你》系列技巧篇(三十四)-java+ selenium自动化测试-单选和多选按钮操作-中篇(详解教程)
1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历单选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选按钮进行实战. 2.d ...
- UltraSoft - Beta - 项目展示
UltraSoft - DDL Killer - Beta 项目展示 团队介绍 CookieLau fmh 王 FUJI LZH DZ(转出) Monster hdl(转入) PM & 后端 ...
- [no_code][Alpha]事后分析
$( "#cnblogs_post_body" ).catalog() 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们要解决的 ...
- [软工作业]-软件案例分析-CSDN
[软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...