两类strling数
来源:互联网 发布:黄金利多利空数据软件 编辑:程序博客网 时间:2024/05/29 19:25
strling数在参加的好几次比赛中都能遇到,就来总结一下
第一类strling数:
我们一般遇到的都是第一类无符号数,也就是求i个不同元素构成j个圆排列的方案数,
其递推式是:
s(i, j) = s(i - 1, j - 1) + (i - 1) * s(i - 1, j) , 1 <= j <= i - 1
其中S(i, 0) = 0; i >= 1;
S(i, i) = 1; i >= 0;
理解起来就是i个数构成j个环=i-1个数构成一个环和一个元素自成环+i-1个元素构成j个环然后在每个元素旁边加上一个元素
#include<bits/stdc++.h>using namespace std;using LL=int64_t;const int INF=0x3f3f3f3f;const int maxn=1e3;LL Strling1[maxn][maxn];void strling() { memset(Strling1,0,sizeof(Strling1)); Strling1[0][0]=1; for(int i=1;i<maxn;i++) { Strling1[i][0]=0,Strling1[i][i]=1; for(int j=1;j<i;j++) { Strling1[i][j]=Strling1[i-1][j-1]+(i-1)*Strling1[i-1][j]; } }}
第二类strling数:
将i个不同的元素拆分成j个集合的方案数,其中比如说将两个数分成(3,5)和分成(5,3)视为同一种情况
其递推式是:s(i,j)=j*s(i-1,j)+s(i-1,j-1)
其中s(i,0)=0,s(i,i)=1;
#include<bits/stdc++.h>using namespace std;using LL=int64_t;const int INF=0x3f3f3f3f;const int maxn=1e3;LL Strling2[maxn][maxn];void strling() { memset(Strling2,0,sizeof(Strling2)); Strling2[0][0]=1; for(int i=1;i<maxn;i++) { Strling2[i][0]=0,Strling2[i][i]=1; for(int j=1;j<i;j++) { Strling2[i][j]=Strling2[i-1][j-1]+j*Strling2[i-1][j]; } }}
阅读全文
0 0
- 两类strling数
- HDU 2512 第二类Strling数
- NOJ-(strling数)
- HDU 4045 Machine scheduling --第二类Strling数
- Hdu 6143 Killer Names(第二类strling数)
- Light OJ 1326 Race (Strling数)
- hdu6143 Killer Names(strling数)
- 3625 Examining the Rooms(第一类strling数)
- HDU3625-----第二类strling number的简单应用
- 4372 Count the Buildings(2012 Multi-University Training Contest 8)第一类strling数
- 两数之和,两数之积
- 两数比大小
- 两数交换
- 两数最大公约数
- 两数的差
- 两数的最大值
- 两数中的最大值
- 两数乘积运算
- [leetcode 104. Maximum Depth of Binary Tree]week 5
- 80端口被占用 PID 4
- [leetcode 55. Jump Game]week 7
- [leetcode 50. Pow(x, n)]week 11
- [leetcode 19 Remove Nth Node From End of List]week 13
- 两类strling数
- [leetcode Merge Two Sorted Lists]week 15
- [leetcode Search Insert Position]week 17
- Linux(redhat6.5)下 安装mysql5.7.18——yum方式
- [leetcode Best Time to Buy and Sell Stock]week 18
- [leetcode Maximum Subarray]week 19
- 线性表(List)---顺序存储结构
- [算法概论 8.12 k-生成树问题]
- zoj 2271