[HAOI2016]放棋子
233
http://www.nowcoder.com/questionTerminal/7082aa54bd7c4c04a789104d784a3af2
错排+高精度 用java写的话简单明略
f[n]=(f[n−1]+f[n−2])×(n−1),其中f[1]=0,f[2]=1
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); BigInteger a[]=new BigInteger[205]; while(cin.hasNext()) { int n=cin.nextInt(); int x; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) x=cin.nextInt(); } a[1]=BigInteger.valueOf(0); a[2]=BigInteger.valueOf(1); for(int i=3;i<=n;i++) { a[i]=(a[i-1].add(a[i-2])).multiply(BigInteger.valueOf(i-1)); } System.out.println(a[n]); } } }