[HAOI2016] 放棋子(高精度,数学)

博客探讨了在有障碍的N*N矩阵上放置棋子的方案数问题,这是一个涉及错排组合的数学问题。通过将障碍视为原本应放置棋子的位置,并利用错排公式f[n]=(f[n-1]+f[n-2])×(n-1)来求解,其中n最大为200。由于计算涉及高精度,博客指出在本题中矩阵的具体信息并不影响答案的计算。
摘要由CSDN通过智能技术生成

题目

描述

给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。

输入

第一行一个N,接下来一个N*N的矩阵。N<=200,0表示没有障碍,1表示有障碍,输入格式参考样例

输出

一个整数,即合法的方案数。

输入样例

2
0 1
1 0

输出样例

1

解题思路

学校刚学了排列组合,就看到了这道题……经典的错排问题

把障碍看成每行的那个元素本来的位置,那么题意就是让它们全部错位排列,即没有一个元素在它本来的位置上。
f[n] f [ n ] 是n个数错排的方案数,那么

f[n]=(f[n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值