bzoj4455】的更多相关文章

相当于给树上的每个点分配一个编号使父亲和儿子间都有连边. 于是可以考虑树形dp:设f[i][j][k]为i号点的编号为j,其子树中编号集合为k的方案数.转移显然.然而复杂度3n·n3左右,具体我也不知道是多少,但肯定跑不过. 如果状态有集合的话不管怎样底数都是3了,考虑能不能变成2.完全不能可以想到容斥. 于是在dp中去掉k这一维.那么dp变成n3的.但是dp显然会有问题,即会出现不同的点取了相同编号的情况.这也可以看做是有编号未被选择. 那么就可以容斥了.先算出编号在全集中选择的答案,然后减去…
[BZOJ4455]小星星(动态规划,容斥) 题面 BZOJ 洛谷 Uoj 题解 题意说简单点就是给定一张\(n\)个点的图和一棵\(n\)个点的树,现在要让图和树之间的点一一对应,并且如果树上存在一条边,那么图上对应的点对之间也要存在边. 我们直接求解显然很麻烦,一一对应是一个很不好算的东西. 那么我们先要求并不需要一一对应,随意对应即可,最后再减掉不合法的方案,这样就可以用容斥来解决. 怎么容斥呢?无非是考虑没有一一对应的关系,那么我们先暴力枚举一下哪些点在图上可以和树上的点进行对应,其他的…
4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 707  Solved: 419[Submit][Status][Discuss] Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细 线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了n?1条细线,但 通过这些细线,这颗小星星还是被串在一起,也就是这…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:BZOJ4455 UOJ185 正解:DP+容斥原理 解题报告: 考虑暴力的话需要将一棵子树中的点去与另一个集合一一配对,而对于这种计数类问题,我们可以通过容斥来避开限制. 也就是说不管非法情况,用容斥的方法直接统计,最后得到答案. 我们先枚举整…
Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细 线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了n?1条细线,但 通过这些细线,这颗小星星还是被串在一起,也就是这些小星星通过这些细线形成了树.小Y找到了这个饰品的设 计图纸,她想知道现在饰品中的小星星对应着原来图纸上的哪些小星星.如果现在饰品中两颗小星星有细线相连, 那么要求对应的小星星原来的图纸上也有细线相连.小Y想知道有多少种…
4455: [Zjoi2016]小星星 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 204  Solved: 137[Submit][Status][Discuss] Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这个饰品只剩下了n?1条细线,但通过这些细线,这颗小星星还是被串在一起,也就是这些小…
首先做了T2的旅行者,看到bz上面过的人数比较多.. 考试的时候完全没有想太多.一闪而过了分块思想,然后就没有然后了.. 大视野上面有题解,竟然是一个初中生写的..? 正解其实是“分治”,每次选择中轴线,不会势能分析,感觉考场上想出来也肯定不敢打.. #include<cstdio> #include<algorithm> #define inf 1000000000 #define N 100010 using namespace std; int dis[N],ans[N],q…
闲扯 看到多个限制条件的计数题目,就想到容斥原理 思路 题目要求两个条件 - 编号一一对应 - 树上存在的边,在图上映射到的点上也应该存在 考虑一个暴力的dp,设\(dp_{i,j}\)表示i点编号对应到j点的方案数量 转移显然是枚举每个子节点和每个子节点对应的编号 对于每个子节点的不同方案数求和,不同子节点之间乘起来即可,复杂度\(O(n^3)\) 然后这样是错的,因为编号会有重复,不符合限制,考虑容斥 \(2^n\)枚举子集表示哪几个编号不可以被对应,因为每有一个编号不可对应,就代表至少多出…
传送门 题意简述:给一张图和一棵树(点数都为n≤17n \le17n≤17),问有多少种给树的标号方法方法使得图中去掉多余的边之后和树一模一样. 思路: 容斥好题啊. 考虑fi,jf_{i,j}fi,j​表示把iii对应成原图中的点jjj这棵子树的对应方案数. 然后转移就枚举儿子看能不能转,如果可以就更新当前答案. 但是这样会有多个树中的节点对应到同一个图中的节点上. 于是我们用2n2^n2n的时间去枚举可以对应的原图的点集合然后容斥即可. 代码: #include<bits/stdc++.h>…
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=4455 给一张图和该图的一棵生成树,求可能的编号方案数 sol  :dalao教导我们,看到计数想容斥 考虑对点i标号,O(2^n)枚举可以标的顶点,然后进行树形dp f[i][j]表示点i标j号的方案数,容斥一发即可 最后答案为∑f[1][i],记得开longlong #include<iostream> #include<algorithm> #include<cstd…