CF960G(第一类斯特林数)

设\(f(i,j)\)为\(i\)个数的序列,有\(j\)个前缀最大值的方案数

我们考虑每次添一个最小数,则有:\(f(i,j)=f(i-1,j)+(i-1)*f(i-1,j-1)\),显然这是第一类斯特林数

从而我们得到一个朴素的答案:\[Ans=\sum\limits_{i=1}^{n}f_{i,a-1}×f_{n-1-i,b-1}×C_{n-1}^i\]

理解:枚举\(i+1\)为最大值添的位置,则已经限制了前缀最大值个数及后缀最大值个数,然后再乘上前半部分所填的数

观察\(f_{i,a-1}×f_{n-1-i,b-1}\),发现第一维和唯一:\[Ans=\begin{bmatrix}n-1\\a+b-2\end{bmatrix}C_{a+b-2}^{a-1}\]

原文地址:https://www.cnblogs.com/y2823774827y/p/10706459.html

时间: 2024-11-06 10:41:12

CF960G(第一类斯特林数)的相关文章

HDU3625(SummerTrainingDay05-N 第一类斯特林数)

Examining the Rooms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1661    Accepted Submission(s): 1015 Problem Description A murder happened in the hotel. As the best detective in the town, yo

hdu 3625 第一类斯特林数

题目链接:click here Examining the Rooms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1146    Accepted Submission(s): 689 Problem Description A murder happened in the hotel. As the best detective

HDU 3625 Examining the Rooms(第一类斯特林数)

题意:给你n扇门,然后可以开k次门,每次们后都有一把钥匙,不能开1号门,问最后打开一号门的概率是多少 思路:看大家说是裸的第一类斯特林数,我觉得有篇博客写的很好(传送门),这里采取的是博客里的第二种思路,感觉这种如果想到的话更容易理解,但是并没有遇到博客里说的g++会wa的情况 代码: #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn=55; LL s1[maxn][maxn];

hdu 3625 Examining the Rooms —— 第一类斯特林数

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3625 学习斯特林数:https://blog.csdn.net/qq_33229466/article/details/75042895 https://www.cnblogs.com/gzy-cjoier/p/8426987.html http://www.cnblogs.com/zhouzhendong/p/Stirling-Number.html 关于这道题: 得到一把钥匙后,可以连续开的门与钥匙

【2019雅礼集训】【第一类斯特林数】【NTT&amp;多项式】permutation

目录 题意 输入格式 输出格式 思路: 代码 题意 找有多少个长度为n的排列,使得从左往右数,有a个元素比之前的所有数字都大,从右往左数,有b个元素比之后的所有数字都大. n<=2*10^5,a,b<=n 输入格式 输入三个整数n,a,b. 输出格式 输出一个整数,表示答案. 思路: 这道题是真的神啊... 首先,根据官方题解的思路,首先有一个n^2的DP: 定义dp[i][j]表示一个长度为i的排列,从前往后数一共有j个数字大于所有排在它前面的数字. 首先有转移式: \[dp[i][j]=d

第一类斯特林数

第一类斯特林数大概是这样一个意思:首先从n排列中选出一个m圆排列,这个圆排列也可以理解为有一个位置元素固定的排列,其方案数显然为(m-1)!. 可以用来解决一下有特殊位置的计数问题. 例题 [FJOI2016]建筑师 首先找到最高的建筑作为分水岭后,剩下的位置可以如下划分成a-1+b-1个区间. 发现这a-1+b-1个区间第每一个都必须满足区间最大值放在最前面. 这个东西就可以用第一类斯特林数解决. https://www.cnblogs.com/zhouzhendong/p/Stirling-

CF717A Festival Organization(第一类斯特林数,斐波那契数列)

题目大意:求 $\sum\limits_{n=l}^{r}\dbinom{f_n}{k}\bmod 10^9+7$.其中 $f_n$ 是长度为 $n$ 的 $01$ 序列中,没有连续两个或超过两个 $0$ 的个数. $1\le k\le 200,1\le l\le r\le 10^{18}$. 先考虑如何求 $f_n$. 令 $g[i][j]$ 表示长度为 $i$,结尾是 $j$ 的序列个数. $$g[i][0]=g[i-1][1]$$ $$g[i][1]=g[i-1][0]+g[i-1][1]

【CF715E】Complete the Permutations 第一类斯特林数

题目大意 有两个排列 \(p,q\),其中有一些位置是空的. 你要补全这两个排列. 定义 \(s(p,q)\) 为 每次交换 \(p\) 中的两个数,让 \(p=q\) 的最小操作次数. 求 \(s(p,q)=0,1,2,\ldots,n-1\) 的方案数. \(n\leq 300\) 题解 考虑 \(s(p,q)\) 怎么求. 对于每一个 \(i\),连一条有向边 \(p_i\to q_i\).那么 \(s(p,q)\) 就是 \(n-\) 图中环的个数. 先把 \(p,q\) 对应的图建出来

[BJOI2019]勘破神机(第一类斯特林数,斐波那契数列)

真的是好题,只不过强行多合一有点过分了…… 题目大意: $T$ 组数据.每个测试点中 $m$ 相同. 对于每组数据,给定 $l,r,k$,请求出 $\dfrac{1}{r-l+1}\sum\limits_{n=l}^r\dbinom{f(n,m)}{k}\bmod 998244353$. 其中 $f(n,m)$ 表示用 $1\times 2$ 的骨牌(可以变成 $2\times 1$)填满 $n\times m$ 的网格的方案数. $1\le T\le 5,1\le l\le r\le 10^{