题目背景

这个三角图真好看。。

这个是4阶三角图。。

题目描述

现在我们定义一个三角图是像上面一样的图。。

请求出一个N阶三角图从最上方的顶点走到右下方的点的方案数。

有T组询问。

输入输出格式

输入格式:

第一行一个正整数T

第二行T个正整数Ni。

输出格式:

T行,共T个正整数,表示答案模998244353的结果。

输入输出样例

输入样例#1:

3
1 2 3

输出样例#1:

1
2
6

说明

数据范围10^6

思路:只知道每个点等于上面的+右上的+左边的。只会递推,但会超时,然后去oeis找到了这么个东西——大施罗德数(超级卡特兰数)

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

oeis到的公式

然后会发现这个的第i项等于卡特兰数第i+1项的2倍(除了第1项)(这就是被称为超级卡特兰数的原因吗?)

代码实现使用快速幂+费小马求逆元实现的

代码如下:(该代码取自网上,个人留作模板使用,来源地址:https://blog.csdn.net/LJD201724114126/article/details/81661838)

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=3e6;
typedef long long LL;
#define mod 998244353
LL 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,t;num[1]=num[0]=1;for(int i=2;i<=maxn;i++){num[i]=((6*i-3)*num[i-1]%mod-(i-2)*num[i-2]%mod+mod)%mod*inverse(i+1,mod-2)%mod;}scanf("%d",&t);while(t--){scanf("%d",&n);if(n==1) {printf("1\n");continue;}printf("%lld\n",num[n-1]*2%mod);}return 0;
}

水の三角(超级卡特兰数/大施罗德数)相关推荐

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

    在组合数学中,施罗德数用来描述从 (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)( ...

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

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

  3. 超级卡特兰数(又称大施罗德数)

    题目链接:https://www.nowcoder.com/acm/contest/146/B 把前四项丢进OEIS,就能知道是 施罗德数 参照百科:https://baike.baidu.com/i ...

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

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

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

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

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

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

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

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

  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. python项目-2019年5月GitHub上热门的Python项目
  2. MB1A MB1B MB1C MB11 MIGO的区别解析
  3. pycharm安装scrapy失败_Scrapy ——环境搭配与一个简单的例子
  4. 工程制图 (装配图)
  5. C# Socket网络编程精华篇
  6. 包含min函数的栈 python_面试题_设计包含 min函数的栈
  7. 【转】extern “C“和__declspec(dllexport)以及__declspec(dllimport) 和def的简单解析
  8. Moss 2007 入门(1) - 功能概述【转】
  9. android 关于提高第三方app的service优先级
  10. 击鼓传花:对比 muduo 与 libevent2 的事件处理效率
  11. python内置类型
  12. django -orm操作总结
  13. RSA私钥及公钥生成
  14. 三角网导线平差实例_三角网条件平差计算
  15. pandas.read_csv读取数据时出现省略号
  16. 扯ruan蛋的房价,恶心死了我
  17. java 兔子问题_Java算法之“兔子问题”
  18. 音质好的蓝牙耳机有哪些?音质好的蓝牙耳机推荐
  19. 智能玩具存在的安全隐患须知
  20. 钉钉小程序-打开外部链接(文件链接)

热门文章

  1. 快讯:湘江实验室在长沙揭牌成立;中国移动算网升级3AZ重磅发布
  2. 只有干过才知道:一位来自滴滴、字节的两年程序员自诉
  3. 开膛手约翰(john)的初学者指南(第2部分)
  4. (十四)懈寄生(3)
  5. office版本比较
  6. 计算机组装维护看图填空,电脑组装测试维护故障排除
  7. Multisim10.0 软件安装教程
  8. Datawhale Python-task1-Ariel
  9. Matlab自适应均线_李洋:卡夫曼自适应移动平均线MATLAB代码
  10. Python爬虫新手教程:微医挂号网医生数据抓取!