卡特兰数

卡特兰数2

卡特兰数:主要是求排列组合问题

1:括号化矩阵连乘,问多少种方案

2:走方格,不能过对角线,问多少种方案

3:凸边型,划分成三角形

4:1到n的序列进栈,有多少种出栈方案

NOIP2003 栈

 1 //#pragma comment(linker, "/STACK:167772160")//手动扩栈~~~~hdu 用c++交
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <iostream>
 6 #include <queue>
 7 #include <stack>
 8 #include <cmath>
 9 #include <set>
10 #include <algorithm>
11 #include <vector>
12 // #include<malloc.h>
13 using namespace std;
14 #define clc(a,b) memset(a,b,sizeof(a))
15 #define LL long long
16 const int inf = 0x3f3f3f3f;
17 const double eps = 1e-5;
18 // const double pi = acos(-1);
19 const LL MOD = 1e8;
20 const int N=1<<13;
21 // const LL p = 1e9+7;
22 // inline int r(){
23 //     int x=0,f=1;char ch=getchar();
24 //     while(ch>'9'||ch<'0'){if(ch=='-') f=-1;ch=getchar();}
25 //     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
26 //     return x*f;
27 // }
28
29 int main() {
30     int n;
31     LL f[20]={0};
32     scanf("%d",&n);
33     f[0]=1;f[1]=1;
34     for(int i=2;i<=n;i++)
35        for(int j=0;j<i;j++)
36           f[i]+=f[j]*f[i-j-1];
37     printf("%I64d\n",f[n]);
38     return 0;
39 }

BZOJ3907 网格

转载

 1 /**************************************************************
 2     Problem: 3907
 3     User: Tunix
 4     Language: C++
 5     Result: Accepted
 6     Time:84 ms
 7     Memory:944 kb
 8 ****************************************************************/
 9
10 #include<cstdio>
11 #include<cstring>
12
13 typedef long long LL;
14
15 const int N=10001;
16 const LL mod=100000000;
17
18 int tot=0,x[N],p[N],v[N]={0};
19 LL a[1000],b[1000];
20
21 LL pow(LL x,int p) {
22     LL t=1;for (;p;p>>=1,x*=x) if (p&1) t*=x;return t;
23 }
24
25 void mul(LL a[],LL y) {
26     LL x=0,&l=a[0];
27     for (int i=1;i<=l;i++) {
28         a[i]=a[i]*y+x;
29         x=a[i]/mod;
30         a[i]%=mod;
31     }
32     while (x) a[++l]=x%mod,x/=mod;
33 }
34
35 void dec(LL a[],LL b[]) {
36     LL &l=a[0];
37     for (int i=1;i<=l;i++) {
38         if (a[i]<b[i]) a[i+1]--,a[i]+=mod;
39         a[i]-=b[i];
40     }
41     while (!a[l]) l--;
42 }
43
44 void getc(LL a[],int n,int m) {
45     memset(x,0,sizeof x);
46     for (int i=2;i<=n;i++) x[i]++;
47     for (int i=2;i<=m;i++) x[i]--;
48     for (int i=2;i<=n-m;i++) x[i]--;
49     for (int i=n;i>=2;i--)
50     if (!v[i]) mul(a,pow(i,x[i]));
51     else x[v[i]]+=x[i],x[i/v[i]]+=x[i];
52 }
53
54 void print(LL a[]) {
55     int l=a[0];
56     printf("%lld",a[l]);
57     for (int i=l-1;i>=1;i--) printf("%08lld",a[i]);
58     printf("\n");
59 }
60
61 int main() {
62     int n,m;
63     scanf("%d%d",&n,&m);
64     for (int i=2;i<=n+m;i++) {
65         if (!v[i]) p[++tot]=i;
66         for (int j=1,k;j<=tot,(k=p[j]*i)<=n+m;j++) {
67             v[k]=p[j];
68             if (i%p[j]==0) break;
69         }
70     }
71     a[0]=a[1]=b[0]=b[1]=1;
72     getc(a,n+m,n);
73     getc(b,n+m,n+1);
74     dec(a,b);
75     print(a);
76     return 0;
77 }

转载于:https://www.cnblogs.com/ITUPC/p/5528673.html

卡特兰数 BZOJ3907 网格 NOIP2003 栈相关推荐

  1. 组合排序题目汇总(排列组合、卡特兰数和递归思想)

    组合排序题目汇总 排列组合 矩阵走法 A必须在B左边站队 互不相邻站队 分糖果 球放入桶 吃糖 卡特兰数 括号匹配 进出栈顺序/售票顺序 二叉树不同的结构数 高矮排列 递归思想 信封装信 排列组合 矩 ...

  2. Bailian4077 出栈序列统计【卡特兰数】(vijos P1122)

    问题链接:vijos P1122 出栈序列统计. 出栈序列统计 总时间限制: 100ms 内存限制: 64kB 描述 栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列.你 ...

  3. 洛谷 P1044 栈 [卡特兰数]

    题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...

  4. 出栈顺序 与 卡特兰数(Catalan)的关系

    一,问题描述 给定一个以字符串形式表示的入栈序列,请求出一共有多少种可能的出栈顺序?如何输出所有可能的出栈序列? 比如入栈序列为:1 2 3  ,则出栈序列一共有五种,分别如下:1 2 3.1 3 2 ...

  5. 卡特兰数问题——一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

    一个栈(无穷大)的进栈序列为1,2,3,-,n,有多少个不同的出栈序列? 常规分析 首先,我们设f(n)=序列个数为n的出栈序列种数.(我们假定,最后出栈的元素为k,显然,k取不同值时的情况是相互独立 ...

  6. [Catalan数三连]网格有趣的数列树屋阶梯

    如何让孩子爱上打表 Catalan数 Catalan数是组合数学中一个常出现在各种计数问题中的数列. 以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名. 先丢个公式(设第n项为$ ...

  7. 卡特兰数(简单说说)

    参考题解: [算法]震惊!!!史上最详细的卡特兰数浅谈!!! 卡特兰数(好像很有用的说) 介绍 卡特兰数是组合数学中一种著名数列,其前几项为: 1, 2, 5, 14, 42, 132, 429, 1 ...

  8. 信奥中的数学:斯特林数、卡特兰数

    P1287 盒子与球(球不同 盒不同 不允许有空盒) 盒子与球 - 洛谷 第二类斯特林数总结 第二类斯特林数总结 - _zjz 的博客 - 洛谷博客 P4091 [HEOI2016/TJOI2016] ...

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

    卡特兰数 公式 递推式: 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 ...

最新文章

  1. 互联网对erp行业到底有什么影响
  2. redis 的 HyperLogLog
  3. java 微信多媒体文件_java微信开发之上传下载多媒体文件
  4. Android Apk包的签名出库、自动编译与混淆
  5. mac按文件名查找文件_如何在Mac上查找和删除大文件
  6. 昨夜洪峰抵达主城,重庆人是这么过的......
  7. 下拉词(浏览器下拉)及手机APP端下拉联想推荐词的展示规则
  8. shell脚本验证ssh连通性_ssh远程管理服务
  9. Doris之审计日志插件
  10. 科技部再公布网络安全等10项国家重点研发计划
  11. 【毕业设计】毕业设计选题指南
  12. PHP——简单留言板
  13. 希尔伯特变换到底有什么用
  14. 欢迎空心字怎么写_春节快乐空心字怎么写
  15. 单模光纤VS多模光纤
  16. 读书清单2【一篇装不下】
  17. SpringBoot(六)打包方式
  18. Java网络编程之实现资源下载详解【王道Java】
  19. 电脑重装系统可能会遇到的几个问题
  20. 小米汽车设计图纸泄露,官方称非最终文件;微软裁员遣散费高达8亿美元,人均获赔54万元;苹果暂停自研Wi-Fi芯片|极客头条...

热门文章

  1. 使用共享网口方式访问BMC管理控制器
  2. [20170412]bbed恢复修改记录(不等长).txt
  3. Struts拦截器使用
  4. Silverlight RIA Servcie 删除子对象实体提交错误的问题[解决]
  5. Android RelativeLayout和LinearLayout性能分析
  6. BLE工作模式: Central+Peripheral(Advertising+Connected)
  7. 【Network】协议栈
  8. Eclipse使用Android2.3和3.0的SDK
  9. Java---类加载
  10. django crm 03