hdu 1502 Regular Words_高精度+dp

来源:互联网 发布:python 解释器 开源 编辑:程序博客网 时间:2024/05/22 12:42

题意:问按规则排成的串有多少个A(c)>= B(c) >= C(c)

思路:因为写大整数太累,就偷懒了一下直接用java水过

import java.math.BigInteger;import java.util.Scanner;public class Main {public static void main(String[] args){BigInteger [][][]dp=new BigInteger [65][65][65];dp[0][0][0]=BigInteger.ONE;for(int i=1;i<=60;i++)for(int j=0;j<=i;j++)for(int k=0;k<=j;k++){dp[i][j][k]=BigInteger.valueOf(0);if(i>j)dp[i][j][k]=dp[i][j][k].add(dp[i-1][j][k]);if(j>k)dp[i][j][k]=dp[i][j][k].add(dp[i][j-1][k]);if(k>0)dp[i][j][k]=dp[i][j][k].add(dp[i][j][k-1]);}Scanner cin=new Scanner(System.in);while(cin.hasNext()){int x=cin.nextInt();System.out.println(dp[x][x][x]);System.out.println();}}}


0 0
原创粉丝点击