杜老师说的哦

据说有人n*3^n卡过去 ? UOJ上需要卡常哦

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#define cl(x) memset(x,0,sizeof(x))
using namespace std;
typedef long long ll;inline char nc(){static char buf[100000],*p1=buf,*p2=buf;if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }return *p1++;
}inline void read(int &x){char c=nc(),b=1;for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}const int M=1505;
const int N=25;struct edge{int u,v,w;int next;
}G[M];
int head[N],inum;inline void add(int u,int v,int p){G[p].u=u; G[p].v=v; G[p].next=head[u]; head[u]=p;
}int n,m;
ll f[N][N],Ans;
#define V G[p].v
int Map[N][N];
int lst[N][N];int c,a[N];inline void dfs(int u,int fa){for (int p=head[u];p;p=G[p].next)if (V!=fa)dfs(V,u);for (int i=1;i<=c;i++){f[u][i]=1;for (int p=head[u];p && f[u][i];p=G[p].next)if (V!=fa){ll tem=0;for (int j=1;j<=*lst[i];j++)tem+=f[V][lst[i][j]];f[u][i]*=tem;}}
}int main(){int iu,iv;freopen("t.in","r",stdin);freopen("t.out","w",stdout);read(n); read(m);for (int i=1;i<=m;i++)read(iu),read(iv),Map[iu][iv]=Map[iv][iu]=1;for (int i=1;i<n;i++)read(iu),read(iv),add(iu,iv,++inum),add(iv,iu,++inum);for (int t=0;t<(1<<n);t++){c=0;for (int i=1;i<=n;i++) if (t>>(i-1)&1) a[++c]=i;for (int i=1;i<=c;i++){*lst[i]=0;for (int j=1;j<=c;j++) if (Map[a[i]][a[j]]) lst[i][++*lst[i]]=j;}dfs(1,0);ll tem=0;for (int i=1;i<=c;i++) tem+=f[1][i];if (~(n-c)&1) Ans+=tem; else Ans-=tem;}printf("%lld\n",Ans);return 0;
}

[容斥 状压DP 树形DP] BZOJ 4455 [Zjoi2016]小星星 UOJ #185 【ZJOI2016】小星星相关推荐

  1. 『容斥·状压』CF449D Jzzhu and Numbers

    P r o b l e m \mathrm{Problem} Problem 给出一个长度为n的序列 a 1 , a 2 . . . a n a_1,a_2...a_n a1​,a2​...an​. ...

  2. [容斥 状压DP] HDU4997. Biconnected

    令 fSf_S 表示点集 SS 的答案,gSg_S 表示点集 SS 的连通图个数 那么 gSg_S 可以通过枚举与编号最小的点联通的点集求出来 fS=gS−∑T∈SgT×MT,S−Tf_S=g_S-\ ...

  3. 【十二省联考2019】希望【点边容斥】【换根dp】【长链剖分】【线性数据结构】【回退数据结构】【离线逆元】

    题意:给一棵树,两个参数 k,Lk,Lk,L,需要选择 kkk 个连通块,使得这 kkk 个连通块存在一个公共点,且该公共点到 kkk 个连通块内的任意一点的距离不超过 LLL,求方案数 模 9982 ...

  4. 【训练题66:状压暴力 | 子集dp】Greater Integer, Better LCM | 2021牛客暑期多校训练营5

    题意 Greater Integer, Better LCM | 2021牛客暑期多校训练营5 给你 a,b,ca,b,ca,b,c ,你需要找到一对 x,yx,yx,y ,满足: lcm(a+x,b ...

  5. BZOJ 3566: [SHOI2014]概率充电器 期望DP + 树形DP

    Time Limit: 40 Sec Memory Limit: 256 MB Submit: 1276 Solved: 558 Description 著名的电子产品品牌 SHOI 刚刚发布了引领世 ...

  6. [LOJ#3124][CTS2019]氪金手游(概率 + 树形 DP + 容斥)

    Address 洛谷 P5405 LOJ #3124 Solution 先考虑如果以某个点(下面定为 111 )为根时,如果所有的限制二元组 (u,v)(u,v)(u,v) 都满足 uuu 是 vvv ...

  7. HDU 4336 Card Collector(状压 + 概率DP 期望)题解

    题意:每包干脆面可能开出卡或者什么都没有,一共n种卡,每种卡每包爆率pi,问收齐n种卡的期望 思路:期望求解公式为:$E(x) = \sum_{i=1}^{k}pi * xi + (1 - \sum_ ...

  8. Codeforces ----- Kefa and Dishes [状压dp]

    题目传送门:580D 题目大意:给你n道菜以及每道菜一个权值,k个条件,即第y道菜在第x道后马上吃有z的附加值,求从中取m道菜的最大权值 看到这道题,我们会想到去枚举,但是很显然这是会超时的,再一看数 ...

  9. ACM-ICPC 2018 南京赛区网络预赛 E.AC Challenge 状压dp

    题意: 给定n个作业,每个作业有两个值a,b, 第i天完成这个作业会得到value :i*a + b: 但是完成这个任务之前需要完成一些别的任务 思路: 乍一看像是搜索,但是似乎不太行(好像可以写过) ...

最新文章

  1. 数据库学习笔记2--MySQL数据类型
  2. oracle exp 乱码 942,Oracle exp/imp字符集相关问题
  3. 为什么程序员总是打扮成这样一幅鬼样子
  4. 程序员的算法课(8)-贪心算法:理解霍夫曼编码
  5. CCF201709-2 公共钥匙盒
  6. linux下zookeeper启动命令,For Linux Zookeeper客户端命令行操作指令
  7. Revip MEP二次开发之“连接弯头”
  8. ubuntu 1404部署tomcat7
  9. 为什么我们要考虑线性规划的对偶问题?
  10. svn使用过程中遇到的问题
  11. 计算机四级网络工程师——操作系统部分题目笔记汇总【1~10题】
  12. win10安装wireshark经常报“KB2999226 和 KB3118401”补丁未安装的问题
  13. testbed软件测试技巧,基于LDRA Testbed 软件的单元测试
  14. 计算机视觉面试经验汇总(一)
  15. 检测到磁盘可能为uefi引导_无法安装windows,因为这台电脑的磁盘布局不受UEFI固件支持”,这是怎么回事呢?...
  16. C++ 鼠标模拟程序
  17. C++后端开发的一些工具
  18. Z 字形变换(C语言)
  19. 火狐浏览器主页被篡改的解决办法!
  20. 提升语音识别率的技术 强调与唤醒词相符的输入语音数据

热门文章

  1. 读《中台架构与实现:基于DDD和微服务》有感
  2. 2019高教社杯全国大学生数学建模竞赛论文展示
  3. 微型计算机原理存储器,微机原理存储器扩展详情解析
  4. 苹果键盘怎么手写_支持9种外语语音识别,新增4款外语键盘,搜狗输入法10.8版本上线丨18周新闻...
  5. [02-26]网吧母盘网上精华+个人总结=超详细|『 网吧技术软件区 』 - 迈思工作室技术论坛
  6. Windows下Tesseract训练音符识别
  7. AerSale将携手Universal Avionics为空客320飞机上的ClearVisionTM增强型飞行视景系统开发STC
  8. 东北石油大学本科毕业论文答辩PPT模板
  9. Office Open XML——从底层出发,自定义你的Office组件
  10. 装机员 Ghost Win7 Sp1 64位装机9月版