默慈金数 hdu3723

默慈金数

1, 2, 4, 9, 21, 51, 127, 323, 835, 2188, 5798, 15511, 41835, 113634, 310572, 853467, 2356779, 6536382, 18199284, 50852019, 142547559, 400763223, 1129760415, 3192727797, 9043402501, 25669818476, 73007772802, 208023278209, 593742784829
式子:
M[n+1] = M[n] + ( M[0]*M[n-1] + M[1]*M[n-2] + ... + M[n-1]M[0] )
       = ( (2n+3)*M[n] + 3n*M[n-1] ) / ( n+3 )
默慈金数与卡特兰数:

M[n]=for(int i=0;i<=floor(n/2);++i){+C(n,2i)Catalan(i)
}

应用:
1.一个给定的数的默慈金数是在一个圆上的各点间,画出彼此不相交弦的全部方法的总数。比如为4时,方法数为9

2.在一个网格上,若限定每步只能向右移动一格,可以右上,右下,向右,并禁止移动到y=0以下的地方,则以这种走法移动n步从(0,0)到(n,0)的可能形成的路径的总数

例题:

hdu3723

题意:
求前n个默慈金数,mod(10^100)
限制:
0 <= n <= 10000

/*hdu3723
题意:
求前n个默慈金数,mod(10^100)
限制:
0 <= n <= 10000
思路:
默慈金数
*/
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
static final int N = 10005;
static final BigInteger MOD = BigInteger.valueOf(10).pow(100);
static BigInteger[] ans = new BigInteger[N];
static void predo() {
ans[1] = BigInteger.ONE;
ans[2] = BigInteger.valueOf(2);
for (int i = 3; i < N; ++i) {
BigInteger a = ans[i - 1].multiply(BigInteger.valueOf(2)
.multiply(BigInteger.valueOf(i)).add(BigInteger.ONE));
BigInteger b = ans[i - 2].multiply(BigInteger.valueOf(3).multiply(
BigInteger.valueOf(i - 1)));
ans[i] = a.add(b).divide(
BigInteger.valueOf(i).add(BigInteger.valueOf(2)));
}
}
public static void main(String[] args) {
predo();
Scanner in = new Scanner(System.in);
int n;
while (in.hasNext()) {
n = in.nextInt();
System.out.println(ans[n].mod(MOD));
}
}
}

默慈金数 (hdu3723)相关推荐

  1. 卡特兰数 默慈金数 默慈金三角形 反射原理

    卡特兰数 公式 递推式: f ( n ) = ∑ f ( i ) ∗ f ( n − i − 1 ) f(n) = ∑f(i) * f(n-i-1) f(n)=∑f(i)∗f(n−i−1) 0 ≤ i ...

  2. 51nod 1556 计算(默慈金数)

    1556 计算 1.0 秒 524,288.0 KB 80 分 5级题 有一个1n的矩阵 固定第一个数为1 其他填正整数 且相邻数的差不能超过1 求方案数%1e9+7的结果 输入 一个数n 表示1n的 ...

  3. 【算法讲11:卡特兰数】默慈金数 | 那罗延数 | 施罗德数

    [算法讲11:卡特兰数]默慈金数 | 那罗延数 | 施罗德数 ⌈\lceil⌈卡特兰数⌋\rfloor⌋Catalan Number 引入 思考 ⌈\lceil⌈卡特兰数⌋\rfloor⌋的性质 ⌈\ ...

  4. HDU 3723 Delta Wave(默慈金数)

    传送门 Delta Wave Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. 保险报业携手万丈金数 探索大数据应用升级

    双方主要代表为中国保险报业股份有限公司董事长赵健.总经理杜增良:广东万丈金数信息技术股份有限公司创始人.董事长兼CEO李廷威.总裁肖运龙 1月27日,中国保险报业股份有限公司与广东万丈金数信息技术股份 ...

  6. 权重随机抽奖, 拉马努金数

    一 权重随机抽奖 我的理解是 5权重概率是4权重概率的2倍,是3权重概率的4倍,那这不就是2的阶乘嘛 思路:循环权重,生成对应的随机比例,然后将这个比例值添加到总随机数上进行随机 import ran ...

  7. MATLAB寻找拉马努金数(出租车数):T=a3+b3=c3+d3.(在矩阵中搜索,不用无脑循环)

    拉马努金,是一个在数字上极具天赋的印度数学家.在和朋友的对话中,朋友谈到一个出租车的车牌号是毫无趣味的1729,他立刻反映到说1729可以表示为两组不同的数,并且每组都是两个数的立方和. 出租车数的定 ...

  8. 【C编程】找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,

    /*找出7个默森尼数.法国数学家默森尼曾提出下列公式:Mp=2^p-1.当p是素数并且Mp也是素数时,称Mp为默森尼数, 例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;而 ...

  9. 找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。

    找出7个默森尼数.法国数学家默森尼曾提出下列公式:Mp=2^p-1.    当p是素数并且Mp也是素数时,称Mp为默森尼数,    例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默 ...

最新文章

  1. 完整约束三(学习笔记)
  2. Oracle中的序列 sequence 用法
  3. ui设计看的书_5本关于UI设计的书
  4. LeetCode 898. 子数组按位或操作(前缀和思想)
  5. 信息学奥赛一本通(1016:整型数据类型存储空间大小)
  6. 终于把结婚照片做成了MTV
  7. 被低估的“败家爷们”
  8. 显式锁(二)Lock接口与显示锁介绍
  9. java 如何处理正则
  10. 适用于ASP.NET的自定义分页控件
  11. WIN8禁用休眠功能
  12. 【VC++类型转换】CString和System::String类型的转换
  13. rhce考试试题以及答案_RedHat红帽认证 RHCE 7.0题库和答案
  14. 基于mfc实现画图软件
  15. Excel-制作简单的环形柱状图
  16. Python——输入若干行,每行若干行整数,求所有整数的最大值
  17. html tbody id 赋值,IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
  18. python bunch制作可导入数据_Python bunch包_程序模块 - PyPI - Python中文网
  19. SlideShow Pro(幻灯片制作)v5.0.0.10绿色中文版
  20. 这是我见过最好的Python教程:十分钟带你认识Python

热门文章

  1. python 实现 代理模式
  2. Google Adsense(谷歌网站联盟)广告申请指南
  3. 表白墙源码 [详细说明版]
  4. 摄影镜头调制传输函数MTF解读
  5. 编程语言专题《开发篇,实参数组名与形参数组名》
  6. SQL SERVER中修改列名
  7. 酒店智能联网门锁解决方案
  8. c++ - 第19节 - c++11
  9. python readline读文件,并且将其转化为数字形式时:ValueError: could not convert string to float:
  10. Win10 2004版本中关于VT-x技术的大坑