0
点赞
收藏
分享

微信扫一扫

P3182 [HAOI2016] 放棋子(递推&高精)


P3182 [HAOI2016] 放棋子(递推&高精)

本题可转化为错排问题。

每一行有一列不能填,那么对列进行问题转化,有列,每个列都不能填一个数字,这不就是错排。

错排的递推式:

第个数有种选择,选择的位置是,若数 放在位置,则有选择,否则有种选择。

代码

if __name__ == '__main__':
n = int(input())
f = [0 for i in range(n + 1)]
f[2] = 1
for i in range(3, n + 1):
f[i] = (i - 1) * (f[i - 1] + f[i - 2])
print(f[n])



举报

相关推荐

0 条评论