【LOJ】#2983. 「WC2019」数树】的更多相关文章

传送门 抄题解 \(Task0\),随便做一下,设 \(cnt\) 为相同的边的个数,输出 \(y^{n-cnt}\) \(Task1\),给定其中一棵树 设初始答案为 \(y^n\),首先可以发现,每有一条边和给定的树相同就会使得答案除去 \(y\) 那么可以利用矩阵树定理,已经有的边权值为 \(y^{-1}\),其它的连成完全图,权值为 \(1\) 求解行列式之后乘上 \(y^n\) 即可,\(O(n^3)\) 第一种正解 \(orz~laofu\) 即可 不会 第二种正解 一个小trick…
原文链接www.cnblogs.com/zhouzhendong/p/LOJ2983.html 前言 我怎么什么都不会?贺忙指导博客才会做. 题解 我们分三个子问题考虑. 子问题0 将红蓝共有的边连接,每一个连通块的颜色相同,不同连通块独立. 答案是 \(y ^ {连通块数}\) . 子问题1 对于红树的一种连接方案,假设将在蓝树上也有的边连接起来,假设连了 \(i\) 条边,那么对答案的贡献就是: \[y ^ n / y ^ i \] 令 \[z = \frac 1 y \] 根据二项式定理…
LOJ2983. 「WC2019」数树 task0 有\(i\)条边一样答案就是\(y^{n - i}\) task1 这里有个避免容斥的方法,如果有\(i\)条边重复我们要算的是\(y^{n - i}\),设\(a = y^{-1}\)那么我们可以对于选了i条边的方案算\(a^{i}\) 可是这样需要容斥,所以有个神奇的技巧 \((a - 1 + 1)^{i} = \sum_{j = 0}^{i}(a - 1)^{j}\binom{i}{j}\) 这样,对于至少选了\(j\)条边的方案,每选一…
Loj #2570. 「ZJOI2017」线段树 题目描述 线段树是九条可怜很喜欢的一个数据结构,它拥有着简单的结构.优秀的复杂度与强大的功能,因此可怜曾经花了很长时间研究线段树的一些性质. 最近可怜又开始研究起线段树来了,有所不同的是,她把目光放在了更广义的线段树上:在正常的线段树中,对于区间 \([l, r]\),我们会取 \(m = \lfloor \frac{l+r}{2} \rfloor\),然后将这个区间分成 \([l, m]\) 和 \([m + 1, r]\) 两个子区间.在广义…
Description 此题含有三个子问题 问题1: 给出n个点的两棵树,记m为只保留同时在两棵树中的边时连通块的个数,求\(y^m\) 问题2: 给出n个点的一棵树,另外一棵树任意生成,求所有方案总的\(y^m\)的和 问题3: 两棵树均任意生成,求所有方案总的\(y^m\)的和 n<=100000,答案对998244353取模 Solution 问题1: 求出同时在两棵树中的边数v,容易得到m=n-v,直接算即可. 问题2: 记\(z=y^{-1}\)即y在模意义下的逆元,我们就是要求\(z…
还是loj的机子快啊... 普通的DP不难想到,设F[i][zt]为带上根玩出zt的方案数,G[i][zt]为子树中的方案数,后面是可以用FWT优化的 主要是复习了下动态DP #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; co…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 小 Yuuka 遇到了一个题目:有一个序列 a1,a2,...,an,对其进行q次操作,每次把一个区间内的数改成区间内的最大值,问最后每个数是多少. 小 Yuuka 很快地就使用了线段树解决了这个问题.于是充满智慧的小 Yuuka 想,如果操作是随机的,即在这 q 次操作中每次等概率随机地选择一个区间 [l,r] (1<=l<=r<=n),然后将这个区间…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 九条可怜是一个喜欢数据结构的女孩子,在常见的数据结构中,可怜最喜欢的就是线段树. 线段树的核心是懒标记,下面是一个带懒标记的线段树的伪代码,其中 tag​ 数组为懒标记: 其中函数 \(Lson(Node)\) 表示 \(Node\) 的左儿子,\(Rson(Node)\) 表示 \(Node\) 的右儿子. 现在可怜手上有一棵 \([1,n]\) 上的线段树,…
传送门 搬题解QwQ 首先最大值一定为 \(1\),直接扫一遍两两比较 \(O(2N)\) 求出最大值 设最大值位置为 \(a\),对于任意两个没有确定的位置 \(x,y\) 询问 \([a,x+y]\),如果 \(a\le x+y\) 那么 \(x,y\) 的最大值为 \(1\),否则 \(x,y\) 最小值为 \(0\) 再询问 \([x,y]\) 即可 复杂度 \(O(7N)\) 考虑 \(Task3\),首先花费 \(2\) 的代价找到端点的 \(1\) 假设序列为 \(00000...…
LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5p + 0.5 \rightarrow p ,0.5q + 0.5\rightarrow q $ 被覆盖的点子树中的点\(p\rightarrow p,0.5q + 0.5 \rightarrow q\) 经过的点\(0.5p \rightarrow p,0.5q \rightarrow q\) 未…