NC19999. [HAOI2016]放棋子
描述
输入描述
第一行一个N,接下来一个N*N的矩阵。N ≤ 200,0表示没有障碍,1表示有障碍,输入格式参考样例
输出描述
一个整数,即合法的方案数。
示例1
输入:
2 0 1 1 0
输出:
1
Java 解法, 执行用时: 48ms, 内存消耗: 10952K, 提交时间: 2022-10-27 20:16:11
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { BigInteger[] f = new BigInteger[201]; f[1] = BigInteger.ZERO; f[2] = BigInteger.ONE; for (int i = 3; i <= 200; i++) f[i]=f[i-1].add(f[i-2]).multiply(BigInteger.valueOf(i-1)); Scanner in=new Scanner(System.in); System.out.println(f[in.nextInt()]); } }
pypy3 解法, 执行用时: 164ms, 内存消耗: 26384K, 提交时间: 2022-04-23 10:56:07
def read_ints(): return list(map(int, input().split())) n = int(input()) grid = [read_ints() for i in range(n)] d = [0] * (n+1) d[1] = 0 d[2] = 1 for i in range(3, n+1): d[i] = (i-1) * (d[i-1]+d[i-2]) print(d[n])
Python3(3.9) 解法, 执行用时: 22ms, 内存消耗: 2836K, 提交时间: 2021-04-29 16:59:47
n = int(input()) f = [ 0,0,1 ] for i in range(3,n+1): f.append((i-1)*(f[i-1]+f[i-2])) print(f[n])