题目链接:https://www.nowcoder.com/acm/contest/146/B

把前四项丢进OEIS,就能知道是

施罗德数

参照百科:https://baike.baidu.com/item/%E6%96%BD%E7%BD%97%E5%BE%B7%E6%95%B0/16536292

施罗德数是一组可用于解决组合数学中某些问题的序列。

施罗德数的前几项为1, 2, 6, 22, 90, 394, 1806, 8558, 41586, 206098,... (OEIS A006318)

但是按照施罗德数

递推公式暴力肯定会超时,在网上搜索“施罗德数”可以查到“超级卡特兰数”,其递推公式为:

数列前几项为1, 1, 3, 11, 45, 197, 903, 4279, 20793, 103049, 518859, 2646723, 13648869, 71039373, 372693519, 1968801519, 10463578353, 55909013009, 300159426963, 1618362158587, 8759309660445, 47574827600981, 259215937709463……(从第0项开始的)

仔细观察可以看到这个数列和施罗德数除了f(1)以外都是2倍的关系,所以可以使用这个公式计算。

代码如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;const int maxn=3e5;
typedef long long LL;
#define mod 998244353LL num[maxn];LL inverse(LL x,LL y)///快速幂加费马小定理求逆元
{LL sum=1;while(y){if(y&1) sum=sum*x%mod;y/=2;x=x*x%mod;}return sum%mod;
}int main()
{int n;while(~scanf("%d",&n)){num[1]=num[0]=1;if(n==1) {printf("1\n");continue;}for(int i=2;i<=n;i++){num[i]=((6*i-3)*num[i-1]%mod-(i-2)*num[i-2]%mod+mod)%mod*inverse(i+1,mod-2)%mod;}printf("%lld\n",num[n-1]*2%mod);}return 0;
}

我的标签:做个有情怀的程序员。

超级卡特兰数(又称大施罗德数)相关推荐

  1. 阿里云天池超级码力在线编程大赛初赛 第2场 ABCD(A.计算几何 判断点在三角形内 D.大施罗德数/超级卡特兰数)

    心得 打了一下被群友吐槽的比赛,阅读体验极差 阴间题面,读题1小时,AC5min,原题警告 思路来源 https://blog.csdn.net/PleasantlY1/article/details ...

  2. 水の三角(超级卡特兰数/大施罗德数)

    题目背景 这个三角图真好看.. 这个是4阶三角图.. 题目描述 现在我们定义一个三角图是像上面一样的图.. 请求出一个N阶三角图从最上方的顶点走到右下方的点的方案数. 有T组询问. 输入输出格式 输入 ...

  3. 【组合数学】卡特兰数 / 大施罗德数 相关

    在组合数学中,施罗德数用来描述从 (0,0)(0, 0)(0,0) 到 (n,n)(n,n)(n,n) 的网格中,只能使用 (1,0)(1,0)(1,0).(0,1)(0,1)(0,1).(1,1)( ...

  4. 超级卡特兰数(bzoj 4706: B君的多边形)

    4706: B君的多边形 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 159  Solved: 92 [Submit][Status][Discu ...

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

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

  6. 阿里云 超级码力在线编程大赛初赛 第2场 题目4. 小栖的金字塔(超级卡特兰数+除法求模/乘法逆元)

    文章目录 1. 题目 2. 解题 1. 题目 来源:https://tianchi.aliyun.com/oj/15165469968503404/76745683739284070 2. 解题 按道 ...

  7. [超级码力在线编程大赛初赛(二)] 4.小栖的金字塔 施罗德数(超级卡特兰数)

    题目链接:小栖的金字塔 题意 小栖可以在不同点间移动,假设小栖现在在(x1,y1){(x_1,y_1)}(x1​,y1​),他能够移动到的下一个点(x2,y2){(x_2,y_2)}(x2​,y2​) ...

  8. BZOJ4706 B君的多边形 (超级卡特兰数/施罗德数)

    题目 权限题QAQ 题解 超级卡特兰数/施罗德数 CODE #include <bits/stdc++.h> using namespace std; const int MAXN = 1 ...

  9. 卡特兰数(n个节点的二叉树情况数量+hdu2067) (超级卡特兰数(施罗德数))

    卡特兰数是组合数学中一个常出现在各种计数问题中的数列. 举个栗子:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742 ...

最新文章

  1. php request order,php.ini中的request_order推荐设置,requestorder_PHP教程
  2. Jupyter Notebook 的快捷键
  3. 查看磁盘空间,清理缓存
  4. 【原创】TimeSten安装与配置
  5. 矩阵的三角分解(LU)法(高斯消去法的矩阵形式分析)
  6. 第五周项目三-时间类(1)
  7. 九度 1550 分糖果
  8. Python 【第八章】:JavaScript 、Dom、jQuery
  9. Core-java面试题第一套上篇
  10. w3c的ajax操作函数,关于ajax的使用方法_例题、ajax的数据处理
  11. 《设计模式》杂记之里氏替换原则
  12. Ajax学习系列——向服务器发送请求
  13. XML——文档类型定义(DTD-Document Type Definition)
  14. 300张小抄表搞定机器学习知识点:学习根本停不下来!
  15. mysql select语句执行顺序
  16. joblib多线程、多进程学习案例(三)
  17. UnityShader例子:边缘检测
  18. 苹果Mac鼠标光标丢失如何找回?
  19. H5网页去除苹果手机底部白边
  20. 全桥逆变电路部分分析

热门文章

  1. JavaScript中一个等号、二个等号、 三个等号 的区别
  2. com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `x`
  3. 《汇编语言》王爽(第四版) 第十六章 实验16
  4. 这是他本赛季第一张黄牌
  5. GPS NMEA数据包解析
  6. 如何构建供应链服务平台?
  7. IDEA创建一个JavaWeb项目详细步骤
  8. Android面试攻略
  9. Bloc入门之Bloc详解
  10. 网站卡其cdn后不能访问_关于网站使用CDN后无法登录的解决办法