[loj2091]小星星
(分别用$E_{T}$和$E_{G}$表示树和图的边集)
简单分析,可以发现题目即求排列$p_{i}$的数量,满足$\forall (x,y)\in E_{T},(p_{x},p_{y})\in E_{G}$(记为条件$A$)
定义$count(S)$为:序列$p_{i}$的数量(忽略排列的限制),满足条件$A$且$\forall 1\le i\le n,p_{i}\in S$
事实上,我们的答案即求$\sum_{S\subseteq [1,n]}(-1)^{n-|S|}f(S)$
证明可以考虑每一个满足条件$A$序列$p_{i}$的对答案的贡献:
1.若$p_{i}$是排列,显然仅有$S=[1,n]$时有贡献,且恰好为1
2.若$p_{i}$不为排列,令$T=\{a_{i}\}$其贡献即$\sum_{T\subseteq S\subseteq [1,n]}(-1)^{n-|S|}$,由于其不为排列,存在$1\le x\le n$且$x\notin T$,任取其中的一个$x$,考虑$x$是否存在不难发现两者恰好抵消,即贡献为0
综上,即仅有排列对答案有1的贡献,即得证
不妨暴力枚举$S$,考虑如何求$f(S)$:对树进行dp,用$f_{i,j}$表示以$i$为根的子树内且$p_{i}=j$的方案数,枚举儿子的值转移即可,复杂度为$o(n^{3})$
最终复杂度即$o(n^{3}2^{n})$,可以通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 20
4 #define ll long long
5 struct Edge{
6 int nex,to;
7 }edge[N<<1];
8 int E,n,m,x,y,head[N],vis[N][N];
9 ll ans,f[N][N];
10 void add(int x,int y){
11 edge[E].nex=head[x];
12 edge[E].to=y;
13 head[x]=E++;
14 }
15 void dfs(int k,int fa,int S){
16 for(int i=0;i<n;i++)
17 if (S&(1<<i))f[k][i]=1;
18 else f[k][i]=0;
19 for(int i=head[k];i!=-1;i=edge[i].nex)
20 if (edge[i].to!=fa){
21 dfs(edge[i].to,k,S);
22 for(int j=0;j<n;j++)
23 if (S&(1<<j)){
24 ll s=0;
25 for(int t=0;t<n;t++)
26 if (vis[j][t])s+=f[edge[i].to][t];
27 f[k][j]*=s;
28 }
29 }
30 }
31 int main(){
32 scanf("%d%d",&n,&m);
33 memset(head,-1,sizeof(head));
34 for(int i=1;i<=m;i++){
35 scanf("%d%d",&x,&y);
36 x--,y--;
37 vis[x][y]=vis[y][x]=1;
38 }
39 for(int i=1;i<n;i++){
40 scanf("%d%d",&x,&y);
41 x--,y--;
42 add(x,y);
43 add(y,x);
44 }
45 for(int i=0;i<(1<<n);i++){
46 dfs(0,0,i);
47 ll s=0;
48 for(int j=0;j<n;j++)s+=f[0][j];
49 for(int j=0;j<n;j++)
50 if (i&(1<<j))s*=-1;
51 ans+=s;
52 }
53 if (n&1)ans*=-1;
54 printf("%lld",ans);
55 }
[loj2091]小星星的更多相关文章
- 「LOJ2091」「ZJOI2016」小星星 容斥+DP
题目描述 小 Y 是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有\(n\)颗小星星,用 \(m\)条彩色的细线串了起来,每条细线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉 ...
- loj2091 「ZJOI2016」小星星
ref 总的来说,就是 容斥转化为点对应到点集问题. 树形 dp 解决转化后的问题. #include <iostream> #include <cstring> #inclu ...
- bzoj4455 & loj2091 [Zjoi2016]小星星 容斥原理+树形DP(+状压DP?)
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4455 https://loj.ac/problem/2091 题解 很不错的一道题.(不过在当 ...
- BZOJ4455: [Zjoi2016]小星星
Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细 线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这 ...
- JS对象实现随机满天小星星实例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【BZOJ-4455】小星星 容斥 + 树形DP
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 204 Solved: 137[Submit][Status] ...
- 小星星的php
大家好,我是小星星,最近新学的php,我迫不及待要跟大家分享了!!come on!一起来看小星星的世界 先为大家介绍php基础 首先我们来看看什么叫php: PHP(外文名:PHP: Hypertex ...
- BZOJ 4455: [Zjoi2016]小星星 [容斥原理 树形DP]
4455: [Zjoi2016]小星星 题意:一个图删掉一些边形成一棵树,告诉你图和树的样子,求让图上的点和树上的点对应起来有多少方案 看了很多题解又想了一段时间,感觉题解都没有很深入,现在大致有了自 ...
- [ZJOI2016]小星星
题目描述 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星. 有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了 ...
随机推荐
- kvm安装window系统及使用NFS动态迁移
验证是否开启虚拟化 # grep -E 'svm|vmx' /proc/cpuinfo - vmx is for Intel processors - svm is for AMD processor ...
- 2021.2.23--vj补题
B - B CodeForces - 699B 题目: You are given a description of a depot. It is a rectangular checkered fi ...
- leetcode 5/300 最长回文子串 py
目录 题目说明 方法一:动态规划--状态转移方程 方法二:优化中心扩展算法 题目说明 要看明白求得是什么,最长回文字串是指例如cababa中ababa是最长的,不是求回文的部分aba 方法一:动态规划 ...
- CentOS 文件管理
目录 目录管理 目录结构 切换目录 查看目录 创建目录 复制目录 剪切目录 删除目录 文件管理 查看文件 创建文件 复制文件 剪切文件 删除文件 创建链接 目录管理 目录也是一种文件. 蓝色目录,绿色 ...
- Scrum Meeting 16
第16次例会报告 日期:2021年06月11日 会议主要内容概述: 最后一次例会 一.进度情况 我们采用日报的形式记录每个人的具体进度,链接Home · Wiki,如下记录仅为保证公开性: 组员 负责 ...
- UltraSoft - Alpha - Scrum Meeting 3
Date: Apr 15th, 2020. 会议内容为 贡献分确定与进度汇报. Scrum 情况汇报 进度情况 组员 负责 昨日进度 后两日任务 CookieLau PM.后端 学习前后端分离技术的项 ...
- 【二食堂】Alpha- 发布声明
MarkTexting Alpha版本发布声明 今日我们的MarkTexting正式上线了! 功能介绍 我们实现了一个简单的文本标注生成知识图谱的网站,在Alpha阶段,我们实现的功能有: 登陆注册 ...
- gson中TypeAdapter实现自定义序列化操作
最近在项目中遇到这么一个问题,我们后台需要向前端返回一个 json 数据,就是将一个地理位置对象以json的格式返回到前台,但是这个地理位置对象中的经纬度是Double数据类型,项目中规定,如果经纬度 ...
- 期望 概率DP
期望 \(x\) 的期望 \(E(x)\) 表示平均情况下 \(x\) 的值. 令 \(C\) 表示常数, \(X\) 和 \(Y\) 表示两个随机变量. \(E(C)=C\) \(E(C \time ...
- 解决boa网页操作出现502 Bad Gateway The CGI was not CGI/1.1 compliant的一种可能
最近在把一套网页操作的接口从原来Android5.0上移植到Android7.0上. 客户端连接验证的时候主页显示异常 502 Bad Gateway The CGI was not CGI/1.1 ...