杭电 1023 Train Problem II
来源:互联网 发布:me452cha支持什么网络 编辑:程序博客网 时间:2024/05/02 08:48
一,题目的意思:就是在堆栈中严格递增进入堆栈,问有多少种出栈顺序。
严格递增就是按照12345进入堆栈,而不是按照21345的顺序进入堆栈中。
二,解题思路:采用卡特兰数方法来解决这题,另外要使用BigInteger来进行操作,而不能使用int数据类型来进行操作
1,这题,要是能想到卡特兰数方法的话,不难的。
2,卡特兰数的公式为:
F(0)=1
F(1)=1
F(2)=2
F(3)=5
F(4)=14
F(5)=42
F(6)=132
F(7)=429
F(8)=1430
F(9)=4820
F(10)=16796
F(11)=58786
F(12)=208012
F(13)=742900
F(14)=2674440
F(15)=9694845
F(16)=35357670
F(17)=129644790
三,用java实现此程序 (已经AC了的)
import java.math.BigInteger;import java.util.Scanner;public class Main{ public static void main(String []args) { Scanner scan=new Scanner(System.in); int n; BigInteger sum; while(scan.hasNext()) { n=scan.nextInt(); BigInteger sum1; sum1=BigInteger.valueOf(1); //对sum1进行初始化 BigInteger sum2; sum2=BigInteger.valueOf(1);//对sum2进行初始化 for(int i=n;i>0;i--) { sum1=sum1.multiply(BigInteger.valueOf(i)); } for(int i=2*n;i>n;i--) { sum2=sum2.multiply(BigInteger.valueOf(i)); } sum=sum2.divide(sum1); BigInteger bit3=new BigInteger(String.valueOf(n+1)); sum=sum.divide(bit3); System.out.println(sum); } }}
1 0
- acm 杭电 train problem ii 1023
- 杭电OJ 1023:Train Problem II
- 杭电1023Train Problem II
- 杭电 1023 Train Problem II
- 杭电1023——Train Problem II
- 杭电 hdu 1023——Train Problem II .
- 杭电ACM——1023Train Problem II
- 1023:Train Problem II
- 1023 Train Problem II
- 杭电Train Problem I
- 杭电1022 train problem
- hdu 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDU-1023 Train Problem II
- HDU 1023 Train Problem II
- hdu 1023 Train Problem II
- hdu 1023 Train Problem II
- JSON 数据格式
- 从苏宁电器到卡巴斯基第13篇:我在苏宁电器当营业员 V
- Python学习(1)
- 为Android添加一个开机完成后执行的脚本
- 谈谈h5 WebStorage的那点事儿
- 杭电 1023 Train Problem II
- maven学习(上)- 基本入门用法
- Android线程异步机制Handler与AsyncTask详解
- Java网络编程 基本网络概念
- 英文歌
- 黑马程序员——关于字符串和数组的习题总结(补充)
- ASP.NET C#各种数据库连接字符串大全——SQLServer、Oracle、Access
- Move Zeroes
- [SCU 4531] Cruel War II (暴力)