P1722 矩阵 II(卡特兰数)

P1722 矩阵 II(卡特兰数)

题目传送门

思路:转换为 + 1 , 1 +1,-1 的 一一映射,显然为卡特兰数。

由于 m o d = 100 mod=100 可能用除法没有逆元,所以用 O ( n 2 ) O(n^2) 的乘法递推式即可。

h ( n ) = h ( 0 ) × h ( n 1 ) + h ( 1 ) × h ( n 2 ) + h ( n 1 ) × h ( 0 ) h(n)=h(0)\times h(n-1)+h(1)\times h(n-2)+\dots h(n-1)\times h(0)

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int mod=100;
typedef long long ll;
int h[105]={1,1,2};
int main(){
	int n;
	scanf("%d",&n);
	for(int i=3;i<=n;i++)
		for(int j=0;j<i;j++)
			h[i]=(h[i]+h[j]*h[i-1-j]%mod)%mod;
	printf("%d\n",h[n]);
	return 0;
} 
原创文章 201 获赞 165 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/106069192