题目链接 BZOJ3244 题解 不会做orz 我们要挖掘出\(bfs\)序和\(dfs\)序的性质 ①容易知道\(bfs\)序一定是一层一层的,如果我们能确定在\(bfs\)序中各层的断点,就能确定深度 ②由于\(bfs\)序和\(dfs\)序儿子遍历顺序是一样的,所以\(bfs\)序同一层的点,在\(dfs\)序中顺序也一样,如果存在\(u,v\)在\(bfs\)中相邻,而在\(dfs\)序中逆序,那么\(u,v\)之间一定有断点 ③\(dfs\)序中相邻的两个点\(u,v\)之间\(v\)…
题目链接:https://www.nowcoder.com/acm/contest/143/F 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Kanade has n boxes , the i-th box has p[i] probability to have an diamond of d[i] size. At the beginning , Kanade has a dia…
目录 题目链接 题解 代码 题目链接 loj#2665. 「NOI2013」树的计数 题解 求树高的期望 对bfs序分层 考虑同时符合dfs和bfs序的树满足什么条件 第一个点要强制分层 对于bfs序连续的a,b两点,若a的bfs序小于b的bfs序,且a的dfs序大于b的,那么它们之间肯定要分层,对答案贡献为1 对于dfs序连续的a,b两点,若a的dfs序小于b的,且a的bfs序也小于b,那么它们的深度差不超过1,也就是说它们在的bfs序上之间最多分一层 先把前两个条件都判一下,然后把第2个条件…
洛谷P2290 [HNOI2004]树的计数 bzoj1211 [HNOI2004]树的计数 Description 一个有\(n\)个结点的树,设它的结点分别为\(v_1,v_2,\cdots, v_n\),已知第\(i\)个结点\(v_i\)的度数为\(d_i\) 问满足这样的条件的不同的树有多少棵. Input 第一行是一个正整数\(n\),表示树有\(n\)个结点.第二行有\(n\)个数,第\(i\)个数表示\(d_i\),即树的第\(i\)个结点的度数.其中\(1\le n\le 15…
[BZOJ3244][NOI2013]树的计数(神仙题) 题面 BZOJ 这题有点假,\(bzoj\)上如果要交的话请输出\(ans-0.001,ans,ans+0.001\) 题解 数的形态和编号没有关系,因此对于\(bfs\)序重标号,同时修改一下\(dfs\)序方便做题. 因为\(bfs\)的层数等于树高,所以我们相当于要把\(bfs\)划分为若干段, 那么,每一种\(bfs\)划分显然要么不合法,要么对应一种树的形态. 那么,我们来考虑\(bfs\)划分的几个限制. 首先有一个很明显的限…
[UOJ#122][NOI2013]树的计数 试题描述 我们知道一棵有根树可以进行深度优先遍历(DFS)以及广度优先遍历(BFS)来生成这棵树的 DFS 序以及 BFS 序.两棵不同的树的 DFS 序有可能相同,并且它们的 BFS 序也有可能相同,例如下面两棵树的 DFS 序都是 1 2 4 5 3,BFS 序都是 1 2 3 4 5. 现给定一个 DFS 序和 BFS 序,我们想要知道,符合条件的有根树中,树的高度的平均值.即,假如共有 K 棵不同的有根树具有这组 DFS 序和 BFS 序,且…
「NOI2013」树的计数 这什么神题 考虑对bfs重新编号为1,2,3...n,然后重新搞一下dfs序 设dfs序为\(dfn_i\),dfs序第\(i\)位对应的节点为\(pos_i\) 一个暴力是枚举bfs的分层,然后检查合法性. 但是我们注意到一个事情,节点\(i\)与节点\(i-1\)是否在同一层,是不是具有独立性呢? 设\(s_i\)表示\(i\)与\(i+1\)是否在同一层,当\(s_i=1\)时,表示不在同一层. 那么 \(s_1=1\),显然 若区间\([l,r]\)是同层的,…
[NOI2013]树的计数 链接:http://uoj.ac/problem/122 按BFS序来,如果$B_i$与$B_{i-1}$必须在同一层,那么贡献为0,必须在不同层那么贡献为1,都可以贡献为0.5. 因为$B_i$与$B_{i-1}$相邻,所以对方案数的改变最多+1. 必须在不同层,即$D(B_{i-1})>D(B_i)$ 都可以,$B_i$能往下移一层,不改变BFS序以及DFS序: 作为兄弟,父亲必须一样(即$D(B_{i-1})==D(B_i)-1$),不然会改变DFS序. 作为儿…
[NOI2013模拟]坑带的树 题意: 求\(n\)个点,\(m\)条边的同构仙人球个数. \(n\le 1000\) 这是一道怎么看怎么不可做的题. 这种题,肯定是圆方树啦~ 好,那么首先转为广义圆方树. 圆方树上有两种点(废话),那么对于一个方点,它实际上代表的是一个点双,所以我们需要判断一个方点的子树是否中间对称,如果对称则这个子树答案乘\(2\). 显然. 然后判断一个圆点与几个方点相连时,注意到方点之间是可以互相交换顺序的,于是我们看看有多少个子树相同,乘个阶乘. 最后就是求同构仙人球…
http://uoj.ac/problem/122 (题目链接) 题意 给出一棵树的dfs序和bfs序,保证一定可以构成一棵树.问构成的树的期望深度. Solution 这是一个悲伤的故事,我YY的东西挂了,最后打满了补丁,化简一下,就是跟llg一样的写法.←_←别理他. 本来很简单的一个东西,也许是我脑洞太大了→_→ 代码 // uoj122 #include<algorithm> #include<iostream> #include<cstdlib> #inclu…