首页 > 代码库 > BZOJ 2786 Ural1142 Relation 递推
BZOJ 2786 Ural1142 Relation 递推
题目大意:用‘=‘和‘<‘连接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] * 60 f = [ ([0] * 60) for i in range(60) ] ans[1]=1 f[1][1]=1 for 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]
BZOJ 2786 Ural1142 Relation 递推
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。