题目 [国家集训队] Crash 的文明世界 前置 斯特林数\(\Longrightarrow\)斯特林数及反演总结 做法 \[\begin{aligned} ans_x&=\sum\limits_{i=1}^ndis(i,x)^k\\ &=\sum\limits_{i=1}^n\sum\limits_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}C_{dis(i,x)}^jj!\\ &=\sum\limits_{j=0}^k\begin{Bmatr…
这个题非常巧妙啊~ #include <bits/stdc++.h> #define M 170 #define N 50003 #define mod 10007 #define LL long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; inline int qpow(int x,int y) { int tmp=1; for(;y;y>>=1,…
传送门 对于点\(u\),所求为\[\sum_{i=1}^ndis(i,u)^k\] 把后面那堆东西化成第二类斯特林数,有\[\sum_{i=1}^n\sum_{j=0}^kS(k,j)\times j!\times{dis(i,u)\choose j}\] \[\sum_{j=1}^nS(k,j)\times j!\sum_{i=0}^k{dis(i,u)\choose j}\] 于是对于每个点只要维护好\(\sum_{i=0}^k{dis(i,u)\choose j}\)就好了 因为\({n…
题目描述 ​ 给你一棵 n 个点的树,对于树上的每个节点 i,求 \(\sum_{j=1}^ndis(i,j)^k\).其中 \(dis(i,j)\) 为两点在树上的距离. 输入格式 ​ 第一行两个整数 n,k. ​ 接下来 n-1 行,每行两个整数 (x,y),表示一条树边. 输出格式 ​ 一行一个整数,表示答案对 10007 取模的值. 样例输入 5 2 1 2 1 3 2 4 2 5 样例输出 10 7 23 18 18 数据范围 ​ 对于 \(30\%\) 的数据,\(n\le5000,…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2159 学习材料:https://blog.csdn.net/litble/article/details/80882581 https://www.cnblogs.com/Wuweizheng/p/8638858.html http://www.cnblogs.com/zhouzhendong/p/Stirling-Number.html https://blog.csdn.net/qq_…
传送门 解题思路 比较有意思的一道数学题.首先\(n*k^2\)的做法比较好想,就是维护一个\(x^i\)这种东西,然后转移的时候用二项式定理拆开转移.然后有一个比较有意思的结论就是把求\(x^i\)这种东西变成组合数去求,具体来说就是\(n^k=\sum\limits_{i=1}^k\dbinom{n}{i}*S[k][i]*i!\),\(S\)表示第二类斯特林数,第二类斯特林数可以表示为有\(n\)个盒子要装\(m\)个小球,然后在给盒子和求加上编号就可以得出上面的式子.这样的话在根据帕斯卡…
传送门 思路 又见到这个\(k\)次方啦!按照套路,我们将它搞成斯特林数: \[ ans_x=\sum_{i=0}^k i!S(k,i)\sum_y {dis(x,y) \choose i} \] 前面可以枚举,考虑后面那东西怎么求. 我们不知道为什么但就是考虑DP:设: \[ dn_{x,t}=\sum_{y\in x} {dis(x,y) \choose t}\\ up_{x,t}=\sum_{y\notin x} {dis(x,y) \choose t} \] 其中\(y\in x\)表示…
传送门:洛谷 题目大意:设$$S(i)=\sum_{j=1}^ndis(i,j)^k$$,求$S(1),S(2),\ldots,S(n)$. 数据范围:$n\leq 50000,k\leq 150$ 这道题,看见$k$次方和就直接上斯特林数. $$S(x)=\sum_{i=0}^ki!S(k,i)\sum_{y=1}^nC_{dis(x,y)}^i$$ 然后我们考虑求最后一项. 设$$up_{x,t}=\sum_{y\notin x}C_{dis(x,y)}^t,dn_{x,t}=\sum_{y…
题目链接 BZOJ2159 题解 显然不能直接做点分之类的,观察式子中存在式子\(n^k\) 可以考虑到 \[n^k = \sum\limits_{i = 0} \begin{Bmatrix} k \\ i \end{Bmatrix} {n \choose i}i!\] 发现\(k\)很小,对于每个点可以直接\(O(k)\)计算 所以我们只需求出 \[f[i][j] = \sum\limits_{x = 1}^{N}{dis(i,x) \choose j}\] 转移可以利用 \[{n \choo…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2159 使用公式:\( n^{k} = \sum\limits_{i=0}^{k} S(k,i) * i! * C_{n}^{i} \) 所以维护 \( f[x][i] = \sum\limits_{u\in subtree[x],d=dist(x,u)} C_{d}^{i} \) 然后利用 \( C_{n}^{m} = C_{n-1}^{m} + C_{n-1}^{m-1} \),可以树形…