bzoj4455 [Zjoi2016]小星星
题目描述:
bz
luogu
题解:
大力容斥+卡常。
考虑$dp[i][j]$表示点$i$子树选完且点$i$对应点$j$的方案数,很好转移。
然后大力容斥,此时容斥系数$-1^i$。
代码:
#include<cstdio> typedef unsigned long long ll; const int N = 20; template<typename T> inline void read(T&x) {T f = 1,c = 0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){c=c*10+ch-'0';ch=getchar();}x = f*c; } int n,m,mp[N][N],hed[N],cnt; ll ans; struct EG {int to,nxt; }e[2*N]; inline void ae(int f,int t) {e[++cnt].to = t;e[cnt].nxt = hed[f];hed[f] = cnt; } int use[N],sta[N],tl; ll dp[N][N]; void dfs(const int u,const int f) {for(register int i=1;i<=tl;++i)dp[u][i]=1;for(register int j=hed[u];j;j=e[j].nxt){int to = e[j].to;if(to==f)continue;dfs(to,u);for(register int k=1;k<=tl;++k){ll tmp = 0;for(register int i=1;i<=tl;++i)if(mp[sta[i]][sta[k]])tmp+=dp[to][i];dp[u][k]*=tmp;}} } int main() {read(n),read(m);int u,v;for(register int i=1;i<=m;++i)read(u),read(v),mp[u][v]=mp[v][u]=1;for(register int i=1;i<n;++i)read(u),read(v),ae(u,v),ae(v,u);for(register int i=1;i<(1<<n);++i){int tmp = n;tl = 0;for(register int j=1,now=i;j<=n;++j,now>>=1)if(now&1)tmp--,use[j]=1,sta[++tl]=j;else use[j]=0;dfs(1,0);ll now = 0;for(register int j=1;j<=tl;++j)now+=dp[1][j];if(tmp&1)ans-=now;else ans+=now;}printf("%llu\n",ans);return 0; }
View Code
转载于:https://www.cnblogs.com/LiGuanlin1124/p/11061021.html
bzoj4455 [Zjoi2016]小星星相关推荐
- [BZOJ4455][Zjoi2016]小星星
[Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 60 Solved: 52 [Submit][Status][Discuss ...
- 【状压+容斥】BZOJ4455 [ZJOI2016] 小星星
[题目] lydsy 一幅nnn个点的树和一棵nnn个点的树,问有多少种点对应方式使得树上存在一条边则图上也存在一条边. n≤17n\leq 17n≤17 [解题思路] 直接求一一对应并不好算,我们可 ...
- 2019.02.09 bzoj4455: [Zjoi2016]小星星(容斥原理+dp)
传送门 题意简述:给一张图和一棵树(点数都为n≤17n \le17n≤17),问有多少种给树的标号方法方法使得图中去掉多余的边之后和树一模一样. 思路: 容斥好题啊. 考虑fi,jf_{i,j}fi, ...
- bzoj4455UOJ185 [Zjoi2016]小星星(树形DP+容斥原理)
bzoj4455&UOJ185 [Zjoi2016]小星星 原题地址: http://www.lydsy.com/JudgeOnline/problem.php?id=4455 http:// ...
- [ZJOI2016]小星星
[ZJOI2016]小星星 题目描述 luogu题面 给定一个n个点的树和n个点m条边的无向图,求将树嵌入图的方案数. 其中 n≤17,m≤n∗(n−1)2n \leq 17,m \leq \frac ...
- bzoj 4455 [Zjoi2016]小星星 树形dp容斥
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 643 Solved: 391 [Submit][Statu ...
- 4455: [Zjoi2016]小星星
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 246 Solved: 161 [Submit][Statu ...
- bzoj4455 loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...
- [BZOJ4455][UOJ185][Zjoi2016]小星星(树形DP+容斥)
将问题抽象化: 一个nnn个节点的树,和一个n" role="presentation" style="position: relative;"> ...
最新文章
- maven转gradle ,windows错误重定向
- 机器学习中的偏差和方差是什么?
- 中兴智能视觉大数据报:要注意,人工智能将衍生更多工作机会
- 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
- 小米MIX 3如何刷成开发版启用Root超级权限
- PTAM增强现实相关
- 解决pycharm输入法不跟随的方法
- 最长回文子串-三种DP实现
- Divine Array 思维,模拟,结论
- Linux命令在线查询
- 操作系统 实验3【动态分区存储管理】
- 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导
- python代码转换为pytorch_pytorch使用 to 进行类型转换方式
- Nature重磅综述|关于RNA-seq,你想知道的都在这(续)
- item_cat_get - 获得淘宝商品类目
- 原子哥家的 SIM800L透传模式配置
- 【时空序列】使用3D卷积网络学习时空特征
- 输入求闰年c语言程序,C语言计算闰年程序
- 深信服:Weblogic集群负载均衡技术解决方案
- 2015-2016 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest(Gym 100962)