传送门 神仙题-- 考虑计算三个部分:1.\(n\)个点的森林的数量,这个是期望的分母:2.\(n\)个点的所有森林中存在最短路的点对的最短路径长度之和:3.\(n\)个点的所有路径中存在最短路的点对的个数之和,这个是用来计算需要取到\(m\)的点对的数量. 对于1,这个就直接对着树的数量的EGF做多项式exp即可.因为点之间有序所以用EGF,\(n\)个点的树的数量由Cayley定理就是\(n^{n-2}\). 对于3,考虑枚举一个连通块大小,那么这种连通块大小的所有树的存在最短路的点对之和就…
传送门 这题要求的期望,就是总权值(所有不在同一个连通块点对的贡献+同一连通块点对的贡献)/总方案(森林个数) 先求森林个数,森林是由一堆树组成的,而根据purfer序列,一棵\(n\)个点的有标号的树的个数为\(n^{n-2}\),然后因为点有标号所以可以考虑EGF,设树的EGF为\(F(x)\),那么森林的生成函数为\(e^{F(x)}\) 然后是不在同一个连通块点对的贡献,这等于不在同一个连通块点对个数\(*m^2\),然后不在同一个连通块点对个数又等于总点对个数\(-\)在同一个连通块点…
CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用EGF).怎么求呢 \(f(n)=n^{n-2}\)表示\(n\)个点的树数量,根据\(\exp\)定义,\(e^x=\sum_{i=0}^{\infty}\frac{x^i}{i!}\).那么\(F=\exp f\),感性理解就是如果选\(i\)个联通块拼起来就除以\(i!\),很对的样子. 那么期…
显然构造出生成函数,对体积v的物品,生成函数为1+xv+x2v+……=1/(1-xv).将所有生成函数乘起来得到的多项式即为答案,设为F(x),即F(x)=1/∏(1-xvi).但这个多项式的项数是Σvi级别的,无法直接分治FFT卷起来. 我们要降低多项式的次数,于是考虑取对数,化乘为加,得到lnF(x)=-Σln(1-xvi).只要对每个多项式求出ln加起来再exp回去即可. 考虑怎么对这个特殊形式的多项式求ln.对ln(1-xv)求导,得ln(1-xv)'=(1-xv)'/(1-xv)=-v…
题面 给定 n , k n,k n,k ,求长度为 n n n 逆序对个数为 k k k 的排列个数,对 1 e 9 + 7 \rm1e9+7 1e9+7 取模. 1 ≤ n , k ≤ 100   000 1\leq n,k\leq 100\,000 1≤n,k≤100000 . 题解 首先,不要看到逆序对就手忙脚乱,它其实是可控的. 令 d i d_i di​ 为第 i i i 个数前面比它大的数的个数,满足条件 d i ∈ [ 0 , i ) d_i\in[0,i) di​∈[0,i) .…
题目背景 付公主有一个可爱的背包qwq 题目描述 这个背包最多可以装10^5105大小的东西 付公主有n种商品,她要准备出摊了 每种商品体积为Vi,都有10^5105件 给定m,对于s\in [1,m]s∈[1,m],请你回答用这些商品恰好装s体积的方案数 输入输出格式 输入格式: 第一行n,m 第二行V1~Vn 输出格式: m行,第i行代表s=i时方案数,对998244353取模 输入输出样例 输入样例#1: 2 4 1 2 输出样例#1: 1 2 2 3 说明 对于30%的数据,n<=300…
正题 题目链接:https://www.luogu.com.cn/problem/P4389 题目大意 \(n\)种物品,第\(i\)种大小为\(v_i\),数量无限.对于每个\(s\in[1,m]\)求刚好填满\(s\)容量的方案数. \(1\leq n,m\leq 10^5\) 解题思路 统计和为一定值的方案数,好像可以生成函数做? 每种物品大小\(v\)有一个生成函数 \[F(x)=\sum_{i\geq 0}x^{i\times v}=\frac{1}{1-x^v} \] 然后所有生成函…
1. 前言 Random Forests (RF) 是由Breiman [1]提出的一类基于决策树CART的Bagging算法.论文 [5] 在121数据集上比较了179个分类器,效果最好的是RF,准确率要优于基于高斯核SVM和多项式LR.RF自适应非线性数据,不易过拟合,所以在Kaggle竞赛大放异彩,大多数的wining solution都用到了RF. 集成学习(ensemble learning)主要分为两大流派:Bagging与Boosting,两者在训练基分类器的思路截然不同: Bag…
我们学过决策树.朴素贝叶斯.SVM.K近邻等分类器算法,他们各有优缺点:自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或者 元算法 (meta-method).使用集成算法时有多种形式: 不同算法的集成 同一种算法在不同设置下的集成 数据集不同部分分配 给不同分类器之后的集成 1.bagging 和boosting综述 bagging 和boosting中使用的分类器类型都是一样的. bagging,也成为自举汇聚法…
[基础算法] Random Forests 2011 年 8 月 9 日 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型,天然可以作为快速且有效的多类分类模型.如下图所示,RF中的每一棵决策树由众多split和node组成:split通过输入的test取值指引输出的走向(左或右):node为叶节点,决定单棵决策树的最终输出,在分类问题中为类属的概率分布或最大概率类属,在回归问题中为函数取值.整个RT的输出由众多决策树…
俗话说,三个臭皮匠顶个诸葛亮.类似的,如果集成一系列分类器的预测结果,也将会得到由于单个预测期的预测结果.一组预测期称为一个集合(ensemble),因此这一技术被称为集成学习(Ensemble Learning).集成学习算法称作集成方法(Ensemble method). 例如,可以基于训练集的不同随机子集,训练一组决策树分类器.做预测是,首先拿到每一个决策树的预测结果,得票数最多的一个类别作为最终结果,这就是随机森林. 此外,通常还可以在项目的最后使用集成方法.比如已经创建了几个不错的分类…
if you aggregate the predictions of a group of predictors,you will often get better predictions than with the best individual predictor. a group of predictors is called an ensemble:this technique is called Ensemble Learning,and an Ensemble Learning a…
F - Berland and the Shortest Paths 思路: bfs+dfs 首先,bfs找出1到其他点的最短路径大小dis[i] 然后对于2...n中的每个节点u,找到它所能改变的所有前驱(在保证最短路径不变的情况下),即找到v,使得dis[v] + 1 == dis[u],并把u和v所连边保存下来 最后就是dfs递归暴力枚举每个点的前驱,然后输出答案 #include<bits/stdc++.h> using namespace std; #define fi first…
最短路径 APIs 带权有向图中的最短路径,这节讨论从源点(s)到图中其它点的最短路径(single source). Weighted Directed Edge API 需要新的数据类型来表示带权有向边. Weighted Directed Edge:implementation public class DirectedEdge { private final int v, w; private final double weight; public DirectedEdge(int v,…
F - Berland and the Shortest Paths 思路:还是很好想的,处理出来最短路径图,然后搜k个就好啦. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define pii pair<int, int> using namespace std; ; const int inf = 0x3f3f3f3f;…
◇例题·II◇ Berland and the Shortest Paths 题目来源:Codeforce 1005F +传送门+ ◆ 简单题意 给定一个n个点.m条边的无向图.保证图是连通的,且m≥n-1. 以首都(1节点)为根节点生成最小树.树的值定义为每个节点的深度和(根节点深度0).举个例子: 而我们知道,可能有多种情况使树的权值最小,题目给出了一个整数k,如果最小树的生成方案数为ans,当 ans≤k 时,将 ans 种方案全部输出:当 ans>k 时,任意输出 k 种不同生成方案即可…
1506: Double Shortest Paths Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 49  Solved: 5 Description Input There will be at most 200 test cases. Each case begins with two integers n, m (1<=n<=500, 1<=m<=2000), the number of caves and passages.…
.big{font-size:larger} .small{font-size:smaller} .underline{text-decoration:underline} .overline{text-decoration:overline} .line-through{text-decoration:line-through} .aqua{color:#00bfbf} .aqua-background{background-color:#00fafa} .black{color:#000}…
[Codeforces 1005F]Berland and the Shortest Paths(最短路树+dfs) 题面 题意:给你一个无向图,1为起点,求生成树让起点到其他个点的距离最小,距离最小的生成树可能有多个.给定k,如果方案数比k小就输出全部方案,否则输出k种方案. 分析 先跑最短路,对于每个点找到它在最短路树上可能的父亲.即对于\((x,y) \in E,dist(y)=dist(x)+len(x,y)\).那么y在最短路上可能的父亲就是x.说"可能"是因为最短路树可能不…
[BZOJ 3625] [Codeforces 438E] 小朋友的二叉树 (DP+生成函数+多项式开根+多项式求逆) 题面 一棵二叉树的所有点的点权都是给定的集合中的一个数. 让你求出1到m中所有权值为i的二叉树的个数. 两棵树不同当且仅当树的形态不一样或者是树的某个点的点权不一样 分析 设\(c(i)\)表示数值i是否在集合中.\(f(i)\)表示权值为i的二叉树的个数.那么 \[f(n)=\sum_{i=1}^n c(i) \sum_{j=0}^{n-i} f(j)f(n-i-j)\] 其…
Double Shortest PathsAlice and Bob are walking in an ancient maze with a lot of caves and one-way passages connectingthem. They want to go from cave 1 to cave n. All the passages are difficult to pass. Passages are toosmall for two people to walk thr…
Description: \(1<=n,k<=1e5,mod~1e9+7\) 题解: 考虑最经典的排列dp,每次插入第\(i\)大的数,那么可以增加的逆序对个数是\(0-i-1\). 不难得到生成函数: \(Ans=\prod_{i=0}^{n-1}(\sum_{j=0}^ix^j)[x^k]\) \(=\prod_{i=1}^{n}{1-x^i\over 1-x}[x^k]\) 分母是一个经典的生成函数: \({1\over 1-x}^n=(\sum_{i>=0}x^i)^n=\sum…
原文链接www.cnblogs.com/zhouzhendong/p/LOJ2983.html 前言 我怎么什么都不会?贺忙指导博客才会做. 题解 我们分三个子问题考虑. 子问题0 将红蓝共有的边连接,每一个连通块的颜色相同,不同连通块独立. 答案是 \(y ^ {连通块数}\) . 子问题1 对于红树的一种连接方案,假设将在蓝树上也有的边连接起来,假设连了 \(i\) 条边,那么对答案的贡献就是: \[y ^ n / y ^ i \] 令 \[z = \frac 1 y \] 根据二项式定理…
题目大意:给你两个多项式$f(x)$和$g(x)$,满足$f(x)=\prod\limits_{i=1}^{n}(a_i+1)$,$g(x)=\prod\limits_{i=1}^{m}(b_i+1)$. 现在给你一个多项式$h(x)$,满足$h(x)=\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{m}(a_ib_j+1)$ 请输出多项式$h$的前$k$项,在模$998244353$意义下进行. 数据范围:$n,m≤10^5$. 我们现在有: $f(x)=\…
正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将\(n\)的排列分成若干个无序非空集合的方案. 输出答案对\(998244353\)取模. \(1\leq n\leq 10^5,1\leq T\leq 1000\) 解题思路 就是求划分数 分成\(i\)个集合的方案是\((e^x-1)^i\)所以答案的生成函数就是 \[\sum_{i=0}^{\infty}\frac{(e^x-1)^i}{i!} \] emmmmmmmmmmm...…
题目大意 有两棵 \(n\) 个点的树 \(T_1\) 和 \(T_2\). 你要给每个点一个权值吗,要求每个点的权值为 \([1,y]\) 内的整数. 对于一条同时出现在两棵树上的边,这条边的两个端点的值相同. 若 \(op=0\),则给你两棵树 \(T_1,T_2\),求方案数. 若 \(op=1\),则给你一棵树 \(T_1\),求对于所有 \(n^{n-2}\) 种 \(T_2\),方案数之和. 若 \(op=2\),则求对于所有的 \(T_1,T_2\),求方案数之和. \(n\leq…
题意 题目链接 Sol 多项式exp,直接套泰勒展开的公式 \(F(x) = e^{A(x)}\) 求个导\(F'(x) = A(x)\) 我们要求的就是\(G(f(x)) = lnF(x) - A(x)\)的零点. 然后把\(F(x)\)看做变量\(A(x)\)看做长度(什么鬼啊qwq) \(G'(F(x)) = \frac{1}{F(x)}\) 然后就可以牛顿迭代啦 \[F(x) = F_0(x) - \frac{G(F_0(x))}{G'(F_0(x))}\] \[F(x) = F_0(x…
LINK:多项式 exp 做多项式的题 简直在嗑药. 前置只是 泰勒展开 这个东西用于 对于一个函数f(x) 我们不好得到 其在x处的取值. 所以另外设一个函数g(x) 来在x点处无限逼近f(x). 具体的 \(f(x) ≈ g(x)=g(0)+\frac{f^1(0)}{1!}x+\frac{f^2(0)}{2!}x^2+...+\frac{f^n(0)}{n!}x^n\) 牛顿迭代: 常用来求一个函数的零点:假设我们已经求得一个近似值x0 那么我们只需要过(x0,f(x0))这个点做函数图像…
题意 链接 Sol 生成函数博大精深Orz 我们设\(f(i)\)表示权值为\(i\)的二叉树数量,转移的时候可以枚举一下根节点 \(f(n) = \sum_{w \in C_1 \dots C_n} \sum_{j=0}^{n-w} f(j) f(n-w-j)\) 设\(T =n-w\),后半部分变为\(\sum_{j=0}^T f(j) f(T-j)\),是个标准的卷积形式. 对于第一重循环我们可以设出现过的数的生成函数\(C(x)\) 可以得到\(f = C * f * f + 1\),+…
题目大意 本题的满二叉树定义为:不存在只有一个儿子的节点的二叉树. 定义一棵满二叉树\(A\)包含满二叉树\(B\)当且经当\(A\)可以通过下列三种操作变成\(B\): 把一个节点的两个儿子同时删掉 把一棵子树替换成根的的左子树或右子树. 定义\(k\)连树为一棵只有恰好\(k\)个叶子的满二叉树,如果某个节点有一个右孩子,那么这个右孩子一定是一个叶子. 对于给定的\(k\)和\(n\),对于所有在\(1\)到\(n\)之间的\(i\),你需要求出所有叶子节点恰好为\(i\),且不包含\(k\…