UVA10303 - How Many Trees?(java大数+catalan数)
2014-12-04 22:21
453 查看
UVA10303 - How Many Trees?(java大数+catalan数)
题目链接
题目大意:给你1-N N个数,然后要求由这些数构成二叉搜索树,问有多少种这样的二叉搜索树。
解题思路:把前5项理出来,正好是1 2 5 14 42..就猜想是catalan数,结果也是对了。公式f(i + 1) = (4∗i
- 6)/ i; (i >= 2).结果很大,要用高精度。
代码:
题目链接
题目大意:给你1-N N个数,然后要求由这些数构成二叉搜索树,问有多少种这样的二叉搜索树。
解题思路:把前5项理出来,正好是1 2 5 14 42..就猜想是catalan数,结果也是对了。公式f(i + 1) = (4∗i
- 6)/ i; (i >= 2).结果很大,要用高精度。
代码:
import java.util.*; import java.math.*; import java.io.*; public class Main { static BigInteger f[] = new BigInteger[1005]; public static void init () { f[1] = BigInteger.valueOf(1); f[2] = BigInteger.valueOf(1); BigInteger c; for (int i = 2; i <= 1001; i++) { c = BigInteger.valueOf(i); f[i + 1] = f[i].multiply(BigInteger.valueOf(4).multiply(c).subtract(BigInteger.valueOf(6))).divide(c); } } public static void main(String args[]) { Scanner cin = new Scanner(System.in); init(); while (cin.hasNext()) { int n = cin.nextInt(); System.out.println(f[n + 2]); } } }
相关文章推荐
- UVa 10213 (欧拉公式+Java大数) How Many Pieces of Land ?
- 【HDU】1130 - How Many Trees?(java - BigDecimal & 卡特兰大数打表)
- Java 大数之大数高精度斐波那契 UVA_10579&&HDU1316 How many Fibs?
- UVA 10303 - How Many Trees?(数论 卡特兰数 高精度)
- UVA 10303 How Many Trees?
- UVa 10303 How Many Trees? (卡特兰数&高精度)
- UVa 10303 - How Many Trees?
- UVa10303 - How Many Trees?
- UVA 10303 - How Many Trees?(数论 卡特兰数 高精度)
- uva 10303 - How Many Trees?(卡特兰数)
- UVA 10303 How Many Trees?
- uva 10303 How Many Trees?
- uva 10303 How Many Trees?
- UVA 10303 - How Many Trees?(卡特兰数列)
- UVA 10303 How Many Trees? (catlan)
- UVa:10303 How Many Trees ?
- UVA10183 - How Many Fibs?(java大数+二分)
- hdu 1316 How Many Fibs?【JAVA大数】
- HDU1316:How Many Fibs?(大数JAVA)
- How many Fibs?(java大数)