简单题。
其实就是\(Stirling(N,M)\),可以用 \(Dymanic\ Planning\) 求解。
状态转移方程为
\( Stirling(i,j)=Stirling(i-1,j-1)+j\times Stirling(i-1,j) \)
至于高精度,可以用Python
s= [[0] * 450 for i in range(450)]
for i in range(1,450):
s[i][i]=1;s[i][1]=1
for j in range(2,i):
s[i][j]=s[i-1][j-1]+j*s[i-1][j]
while 1:
try:
n,m=map(int,input().split())
print(s[n][m])
except:
exit(0)
这里有几个小技巧
输入多组数据可以使用死循环,然后特判错误即可。
一行输入多组整数可以使用 map(int,input().split())
。返回答案元组。