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

P3349 [ZJOI2016] 小星星 题解 / 树形 DP 容斥

题目传送门:P3349 [ZJOI2016] 小星星。

考虑一个暴力 dp,设 \(f_{i,j,s}\) 表示以 \(i\) 为根的子树,且 \(a_i=j\)\(i\) 的子树选择的集合为 \(s\) 的方案数。

转移的话直接钦定儿子选择什么。

这样做是 \(O(n^33^n)\) 的,无法通过。

如果我们将 \(s\) 从状态中删去,我们显然会算重,那么我们考虑容斥,枚举 \(s\) 且每个 \(a\) 都只能在 \(s\) 中选取(忽略排列的限制),相当于钦定了选择的范围,那么这样就可以 dp 了,然后随便容斥一下即可。

#include<bits/stdc++.h>
#define int long long
#define double long double
using namespace std;
const int N=20,M=1<<17; 
inline int read(){char c=getchar();int f=1,ans=0;while(c<48||c>57) f=(c==45?f=-1:1),c=getchar();while(c>=48&&c<=57) ans=(ans<<1)+(ans<<3)+(c^48),c=getchar();return ans*f;
}
int vis[N][N],n,m;
vector<int>g[N];
int f[N][N];
vector<int>tmp;
inline int get(int x){int ans=0;while(x) ans++,x&=x-1;return ans;}
void dfs(int u,int fa){for (auto i:tmp) f[u][i]=1;for (auto v:g[u]) if (v^fa){dfs(v,u);for (auto i:tmp){int sum=0;for (auto j:tmp) if (j!=i&&vis[i][j]) sum+=f[v][j];f[u][i]*=sum;}}
}
main(){n=read(),m=read();for (int i=1,u,v;i<=m;i++) u=read(),v=read(),vis[u][v]=vis[v][u]=1;for (int i=1,u,v;i<n;i++) u=read(),v=read(),g[u].push_back(v),g[v].push_back(u);int ans=0;for (int i=0;i<(1<<n);i++){for (int i=0;i<=n+1;i++) for (int j=0;j<=n+1;j++) f[i][j]=0;tmp.clear();for (int j=0;j<n;j++) if ((i>>j)&1) tmp.push_back(j+1);dfs(1,0);int sum=0;for (auto i:tmp) sum+=f[1][i];if (n-get(i)&1) ans-=sum;else ans+=sum;}cout <<ans;return 0;
}
http://www.jsqmd.com/news/330163/

相关文章:

  • 大数据深度学习|计算机毕设项目|计算机毕设答辩|基于Django的电商数据分析系统的设计与实现
  • C++ 和 Java 创建对象的区别
  • 传说中的C#x2B;#x2B;精灵库,专治“C#x2B;#x2B;恐惧症”?
  • HTML学习笔记:超详细的 HTML 标签体系与应用指南
  • 基于滑膜控制的 ARS 与 DYC 协调稳定性控制:车辆高速行驶的安全保障
  • 冬训第一周总结
  • 书籍-费迪南德·冯·李希霍芬《李希霍芬中国旅行日记》
  • Java毕设项目:基于springboot的攀枝花市鲜花销售系统(源码+文档,讲解、调试运行,定制等)
  • 2026年市面上有实力的登车桥生产厂家怎么选,移动登车桥/防爆升降平台/登车桥/升降机/防爆升降机,登车桥厂商联系方式
  • 效率直接起飞 8个AI论文软件测评:本科生毕业论文+科研写作必备工具推荐
  • 【毕业设计】基于springboot的攀枝花市鲜花销售系统(源码+文档+远程调试,全bao定制等)
  • 002-Spring AI Alibaba Prompt 能力完整案例
  • 2026年市场靠谱的管家婆软件管理系统排行榜单,财务云/人力云/好会计/税务云/制造云,管家婆软件管理系统推荐排行榜单
  • 强烈安利8个降AIGC网站,千笔AI帮你轻松应对论文AI检测
  • Python 基础语法
  • Java继承:成员变量访问(就近原则+this/super用法)
  • 【毕业设计】SpringBoot+Vue+MySQL Spring Boot企业员工薪酬关系系统平台源码+数据库+论文+部署文档
  • HR 视角曝光:为什么有些人的简历自带“高亮”提醒,而你的在后台显示为“不匹配”?
  • 英语学习网络
  • C语言中的运算符
  • 2026 招聘平台算法大改版!还在用去年的简历模板?小心被系统判定为“僵尸用户”直接屏蔽
  • 看完就会:9个AI论文工具测评!本科生毕业论文写作全攻略
  • 实测对比后!千笔·专业学术智能体,行业天花板级的AI论文平台
  • Ai术语
  • WAF在云原生环境下的部署实用的方案与性能优化策略
  • 探寻2026年优质控制台供应商,这些厂家上榜!,室外监控杆/横臂监控杆/八角监控杆/大屏幕控制台,控制台品牌排名
  • 2026曝气池清理厂家盘点,优质服务一目了然,曝气池清理公司聚焦技术实力与行业适配性
  • Product Hunt 每日热榜 | 2026-01-31
  • 深度解析 BQ7694003:12S BMS 前端 AFE 硬件设计与软件驱动全攻略 2
  • 毕业设计开题报告-宠物商店的设计与实现