题目描述 有一个\(n\)个元素的随机置换\(P\),求\(P\)分解出的轮换个数的\(m\)次方的期望\(\times n!\) \(n\leq 100000,m\leq 30\) 题解 解法一 有一种暴力的做法:设\(f_{i,j}\)为\(i\)个元素的随机置换\(P\),分解出的轮换个数的\(j\)次方的期望\(\times i!\) 考虑第\(P_i\)是什么. 如果是\(i\),那么就多了一个轮换,用二项式定理展开得到\(\sum_{k=0}^jf_{i-1,k}\binom{j}{…
[HDU 3625]Examining the Rooms (第一类斯特林数) 题面 有n个房间,每个房间有一个钥匙,钥匙等概率的出现在n个房间内,每个房间中只会出现且仅出现一个钥匙.你能炸开门k次,问你能进入所有房间的概率.特殊要求:不能炸1号房间的门. T组询问 T<=2000,k<=n<=2000 分析 前置知识(如果你了解斯特林数,可以跳过) 圆排列:把n个元素排在一个圆周上,如果旋转之后两个圆周上的排列一样,那么这两个排列相同 第一类斯特林数S(n,m)表示把n个不同元素构成m…
正题 题目链接:https://www.luogu.com.cn/problem/CF960G 题目大意 求有多少个长度为\(n\)的排列,使得有\(A\)个前缀最大值和\(B\)个后缀最大值. \(0\leq n,A,B\leq 10^5\) 解题思路 显然的是把最大的数两边然后左边的是前缀最大值,右边的是前缀最小值. 然后考虑两个前缀最大值之间其实可以插任何数字,但是最大的一定要排在前面. 其实就是这些数字分成若干个圆排列的个数,就是第一类斯特林数. 枚举左右两边的数量就有 \[\sum_{…
Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1249    Accepted Submission(s): 408 Problem Description There are N buildings standing in a straight line in the City, numbere…
[CF932E]Team Work(第二类斯特林数) 题面 洛谷 CF 求\(\sum_{i=1}^nC_{n}^i*i^k\) 题解 寒假的时候被带飞,这题被带着写了一遍.事实上并不难,我们来颓柿子. 首先回忆一下第二类斯特林数关于整数幂的计算公式: \[m^n=\sum_{i=0}^mC_{m}^i*S(n,i)*i!\] \(m^n\)理解为把\(n\)个不同的球放到\(m\)个不同的盒子中去.那么我们枚举有几个盒子非空,用第二类斯特林数乘阶乘计算放置的方案数,最后求和就是结果. 那么直接…
显然排列中的最大值会将排列分成所能看到的建筑不相关的两部分.对于某一边,将所能看到的建筑和其遮挡的建筑看成一个集合.显然这个集合内最高的要排在第一个,而剩下的建筑可以随便排列,这相当于一个圆排列.同时这些集合的相对顺序显然是固定的.那么考虑划分出一些集合分别放在两边即可.这就是一个非常标准的第一类斯特林数了.数据范围比较友好,可以直接递推. #include<iostream> #include<cstdio> #include<cmath> #include<c…
容斥一发改为计算至少碾压k人的情况数量,这样对于每门课就可以分开考虑再相乘了.剩下的问题是给出某人的排名和分数的值域,求方案数.枚举出现了几种不同的分数,再枚举被给出的人的分数排第几,算一个类似斯特林数的东西即可.后一部分与碾压几人是无关的,预处理一下,复杂度即为三方.当然和四方跑得也差不多快. 数据有些过水,容斥系数都错了还能有90. #include<iostream> #include<cstdio> #include<cmath> #include<cst…
数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的没的的前置 导数 \(f'(x)=\lim\limits_{\triangle x\rightarrow 0}\frac{f(x+\triangle x)-f(x)}{\triangle x}\) \(\sin x:\cos x\) \(\cos x:-\sin x\) \(\ln x:\frac{…
http://acm.hdu.edu.cn/showproblem.php?pid=4045 Machine schedulingTime Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1933 Accepted Submission(s): 711 Problem DescriptionA Baidu’s engineer needs to anal…
Find the Permutations Sorting is one of the most used operations in real life, where Computer Science comes into act. It is well-known that the lower bound of swap based sorting is nlog(n). It means that the best possible sorting algorithm will take…