luogu P1375 小猫(卡特兰数)】的更多相关文章

题意 (n<=200000) 题解 把DP转移方程写出来,这不是卡特兰数吗?然后就解决了. 做完这题我发现 DP真是一个好东西. (公式连乘所以中间要加mod要不爆longlong了) #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; ; ; long long n,dp…
Description 有$N$ 个 $1$ 和 $M$ 个 $0$ 组成的字符串, 满足前 $k$ 个字符中 $1$ 的个数不少于 $0$ 的个数. 求这样字符串的个数. $1<=M <=N<=1e6$ Solution 正难则反, 很难直接求出满足条件的字符串的个数, 就从反面考虑. $N$个$1$ 和 $M$ 个 $0$ 组成的字符串总共有 $C(N + M, N)$ 个, 再减去不满足条件的 字符串的个数就能够得到答案了. 不满足条件的字符串个数为$C(N+M,N+1)$ 证明与…
题目传送门 虽然是水dp,但我感到还是有些无从下手== f[i][j]表示还剩i个50元没考虑,j个100元没考虑的方案数,可有转移f[i][j]=f[i-1][j]+f[i][j-1] 但其实它也可以称作一道数论题,因为答案序列正是卡特兰数. 为什么是卡特兰数?除了凭感觉自己xjb推外,还可以理性分析:因为到100元人时之前一定需要有50元,所以可以把50元看成左括号,100元看成右括号.那么这就转化成为了一个括号匹配问题,卡特兰数其实正是括号匹配的解数. Code #include<cstd…
打个表发现我们要求的就是卡特兰数的第 n 项,即 $\frac{C_{2n}^{n}}{n+1}$. 对组合数的阶乘展开,然后暴力分解质因子并开桶统计一下即可. code: #include <bits/stdc++.h> #define N 100040 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int nex[N],vis[27]; char str[N]; int…
接着压位OvO... 我不会告诉你答案就是卡特兰数... 为什么呢? 首先,$ans[0]=1,ans[1]=1,ans[2]=2$ 对于$ans[3]$,我们可以发现他是这样来的: $ans[3]=\sum_{i=0}^{3-1}ans[i]*ans[n-i-1]$ 而$ans[4]$呢? $ans[4]=\sum_{i=0}^{4-1}ans[i]*ans[n-i-1]$ woc...这不是卡特兰数嘛... 最后:要用高精qwq #include<cstdio> #include<i…
P1375 小猫 题目描述 有2n只小猫站成一圈,主人小明想把它们两两之间用绳子绑住尾巴连在一起.同时小明是个完美主义者,不容许看到有两根绳子交叉.请问小明有几种连线方案,可以把让所有小猫两两配对? 方案数很大,仅需输出方案数模1000000007(一个质数)的值. 数据范围: 60% N<=100 100% N<=100000 输入输出格式 输入格式: 输入一个整数n 输出格式: 输出方案数对1000000007取模的值 输入输出样例 输入样例#1: 复制 3 输出样例#1: 复制 5 卡特…
https://www.luogu.org/problemnew/show/1375 题目描述 有2n只小猫站成一圈,主人小明想把它们两两之间用绳子绑住尾巴连在一起.同时小明是个完美主义者,不容许看到有两根绳子交叉.请问小明有几种连线方案,可以把让所有小猫两两配对? 方案数很大,仅需输出方案数模1000000007(一个质数)的值. 数据范围: 60% N<=100 100% N<=100000 输入输出格式 输入格式: 输入一个整数n 输出格式: 输出方案数对1000000007取模的值 输…
题目链接:https://www.luogu.org/problemnew/show/P1044 转载于:https://www.luogu.org/blog/QiXingZhi/solution-p1044 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈.宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,…
洛谷P3200:https://www.luogu.org/problemnew/show/P3200 思路 这题明显是卡特兰数的题型咯 一看精度有点大 如果递推卡特兰数公式要到O(n2) 可以证明得出分子可以把分母约到只剩1 那我们就可以用分解质因数的方法 把分子分母全都质因数分解 再把分母约掉 就可以直接把分子剩下的质因数乘起来即可 代码 #include<iostream> #include<cstdio> using namespace std; #define ll lo…
这个题是一个卡特兰数的裸题,为什么呢?因为可以通过划分来导出递推式从而判断是卡特兰数,然后直接上公式就行了.卡特兰数的公式见链接. https://www.luogu.org/problemnew/solution/P2532 代码实现不难,就是一个高精乘|除低精. 题干: 题目描述 输入输出格式 输入格式: 一个正整数N(1<=N<=500),表示阶梯的高度. 输出格式: 一个正整数,表示搭建方法的个数.(注:搭建方法的个数可能很大) 输入输出样例 输入样例#1: 复制 3 输出样例#1:…