题目描述:

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]小星星相关推荐

  1. [BZOJ4455][Zjoi2016]小星星

    [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 60 Solved: 52 [Submit][Status][Discuss ...

  2. 【状压+容斥】BZOJ4455 [ZJOI2016] 小星星

    [题目] lydsy 一幅nnn个点的树和一棵nnn个点的树,问有多少种点对应方式使得树上存在一条边则图上也存在一条边. n≤17n\leq 17n≤17 [解题思路] 直接求一一对应并不好算,我们可 ...

  3. 2019.02.09 bzoj4455: [Zjoi2016]小星星(容斥原理+dp)

    传送门 题意简述:给一张图和一棵树(点数都为n≤17n \le17n≤17),问有多少种给树的标号方法方法使得图中去掉多余的边之后和树一模一样. 思路: 容斥好题啊. 考虑fi,jf_{i,j}fi, ...

  4. bzoj4455UOJ185 [Zjoi2016]小星星(树形DP+容斥原理)

    bzoj4455&UOJ185 [Zjoi2016]小星星 原题地址: http://www.lydsy.com/JudgeOnline/problem.php?id=4455 http:// ...

  5. [ZJOI2016]小星星

    [ZJOI2016]小星星 题目描述 luogu题面 给定一个n个点的树和n个点m条边的无向图,求将树嵌入图的方案数. 其中 n≤17,m≤n∗(n−1)2n \leq 17,m \leq \frac ...

  6. bzoj 4455 [Zjoi2016]小星星 树形dp容斥

    4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 643  Solved: 391 [Submit][Statu ...

  7. 4455: [Zjoi2016]小星星

    4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 246  Solved: 161 [Submit][Statu ...

  8. bzoj4455 loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...

  9. [BZOJ4455][UOJ185][Zjoi2016]小星星(树形DP+容斥)

    将问题抽象化: 一个nnn个节点的树,和一个n" role="presentation" style="position: relative;"> ...

最新文章

  1. maven转gradle ,windows错误重定向
  2. 机器学习中的偏差和方差是什么?
  3. 中兴智能视觉大数据报:要注意,人工智能将衍生更多工作机会
  4. 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
  5. 小米MIX 3如何刷成开发版启用Root超级权限
  6. PTAM增强现实相关
  7. 解决pycharm输入法不跟随的方法
  8. 最长回文子串-三种DP实现
  9. Divine Array 思维,模拟,结论
  10. Linux命令在线查询
  11. 操作系统 实验3【动态分区存储管理】
  12. 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导
  13. python代码转换为pytorch_pytorch使用 to 进行类型转换方式
  14. Nature重磅综述|关于RNA-seq,你想知道的都在这(续)
  15. item_cat_get - 获得淘宝商品类目
  16. 原子哥家的 SIM800L透传模式配置
  17. 【时空序列】使用3D卷积网络学习时空特征
  18. 输入求闰年c语言程序,C语言计算闰年程序
  19. 深信服:Weblogic集群负载均衡技术解决方案
  20. 2015-2016 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest(Gym 100962)

热门文章

  1. Wordpress 邮件
  2. 友善之臂NanoPC-T4 RK3399 配置 安装TensorFlow2 Pytorch
  3. 理解 与 计算 物联网产品的电池使用寿命
  4. TCP协议详解之TCP Flag标志位来判断TCP会话的开始和结束
  5. 运气比选择重要,选择比努力重要
  6. Java并发系列(10)——FutureTask 和 CompletionService
  7. 2014秋江苏计算机二级,关于2014年秋季江苏省计算机等级考试报名通知
  8. 2019最新最全微专业之Java语言程序设计入门
  9. 【渝粤教育】电大中专就业指导答案作业 题库
  10. VMware 14安装 CentOS 7