小兔的棋盘 卡特兰数

xiaoxiao2021-02-28  64

小兔的棋盘

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12366    Accepted Submission(s): 6185 Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!   Input 每次输入一个数n(1<=n<=35),当n等于-1时结束输入。   Output 对于每个输入数据输出路径数,具体格式看Sample。   Sample Input 1 3 12 -1   Sample Output 1 1 2 2 3 10 3 12 416024   Author Rabbit   Source RPG专场练习赛   Recommend lcy   |   We have carefully selected several similar problems for you:   2064  2065  1133  2068  1267   

Statistic | Submit | Discuss | Note

import java.util.Scanner;import java.math.*;public class Main {public static void main(String args[]){     BigInteger f[]=new BigInteger[50];     Scanner scan=new Scanner(System.in);     f[0]=BigInteger.ONE;     f[1]=BigInteger.ONE;     int n;     int x=1;     for(int i=2;i<=35;i++)     {         f[i]=(f[i-1].multiply(BigInteger.valueOf(4*i-2))).divide(BigInteger.valueOf(i+1));     }     while(scan.hasNext())     {         n=scan.nextInt();         if(n==-1)             break;         else         {             System.out.println(x+" "+n+" "+f[n].multiply(BigInteger.valueOf(2)));             x++;         }     }  }}

转载请注明原文地址: https://www.6miu.com/read-2622424.html

最新回复(0)