BZOJ 2786 Ural1142 Relation 递推

来源:互联网 发布:机械联结烙印矩阵成本 编辑:程序博客网 时间:2024/04/28 14:40

题目大意:用'='和'<'连接n个元素,等号之间看做一个整体,求方案数

令f[i][j]表示i个数划分成j个有序集合的方案数

如果将第i个数划分进原有的集合中,方案数为f[i-1][j]*j

如果将第i个数新建一个集合插进某个位置,方案数为f[i-1][j-1]*j

故f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j

ans = [0] * 60f = [ ([0] * 60) for i in range(60) ]ans[1]=1f[1][1]=1for i in range (2,51):for j in range (1,i+1):f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j;ans[i]+=f[i][j]T=int(raw_input())for i in range(1,T+1):x=int(raw_input())print ans[x]


1 0
原创粉丝点击