转载请注明出处vmurder谢谢:http://blog.csdn.net/vmurder/article/details/42964979
诶话说那些删我网址不删这句话的盗版什么心态?
题解:
f[i][j]表示前i个数分成j段
【段:两个数=则为一段】
然后转移方程f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j
就是不增加段,那么第i个数可以放到f[i-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]+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])
时间: 2024-11-05 03:48:59