题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1002
题意:求下面这种造型的生成树的个数。
思路:生成树的个数可以用那个矩阵
A:A[i][i]等于i的度数,A[i][j]等于i到j的边数的相反数。那么A的任意一个n-1阶的行列式(就是删掉任意一行一列)就是生成树的个
数。但是这里有一个递推公式,暴力完前几项可以找出这个,f[n]=3*f[n-1]-f[n-2]+2。
import java.util.*; import java.text.*; import java.math.*; public class Main{ public static void PR(String s){ System.out.println(s); } public static void PR(int x) { System.out.println(x); } public static void PR(BigInteger x) { System.out.println(x); } public static void PR(double s) { java.text.DecimalFormat d=new java.text.DecimalFormat("#.000000"); System.out.println(d.format(s)); } static BigInteger a,b,c; static int n; public static void main(String[] args){ Scanner S=new Scanner(System.in); while(S.hasNext()) { n=S.nextInt(); a=BigInteger.ONE; b=BigInteger.valueOf(5); int i; if(n==1) PR(a); else if(n==2) PR(b); else { for(i=3;i<=n;i++) { c=b.multiply(BigInteger.valueOf(3)); c=c.subtract(a).add(BigInteger.valueOf(2)); a=b; b=c; } PR(c); } } } }
BZOJ 1002 轮状病毒(生成树个数),布布扣,bubuko.com
时间: 2024-11-05 14:36:49