BZOJ1856 [Scoi2010]字符串(洛谷P1641)
程序员文章站
2022-07-13 13:48:21
...
Catalan 逆元
发现这个生成字符串的定义很像Catalan,那么就和Catalan一样搞。
首先总方案数,关键是求不满足条件的方案数。
Catalan在坐标系中不能超过x轴,而这道题则不能超过直线,终点为。可以发现从走到其实相当于从走到。那么不合法的方案数即为从走到,等价于。则答案为。
膜的话求个逆元就好了。
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 2000005
#define MOD 20100403
using namespace std;
typedef long long LL;
LL n,m,c[N],iv[N];
inline void Make(){
c[1]=iv[0]=iv[1]=1;
for (int i=2;i<=n+m;i++){
c[i]=(c[i-1]*i)%MOD;
iv[i]=MOD-(MOD/i)*iv[MOD%i]%MOD;
}
for (int i=2;i<=n+m;i++)
iv[i]=iv[i-1]*iv[i]%MOD;
}
inline LL C (int x,int y){ return c[x]*iv[y]%MOD*iv[x-y]%MOD; }
int main(){
scanf("%lld%lld",&n,&m),Make();
printf("%lld\n",((C(n+m,m)-C(n+m,m-1))%MOD+MOD)%MOD);
return 0;
}
推荐阅读
-
洛谷P2572 [SCOI2010]序列操作(ODT)
-
【解题报告】洛谷 P2571 [SCOI2010]传送带
-
洛谷P4925 [1007]Scarlet的字符串不可能这么可爱(计数)
-
洛谷P4302 [SCOI2003]字符串折叠(区间dp)
-
BZOJ1856: [Scoi2010]字符串&&Luogu P1641 [SCOI2010]生成字符串
-
BZOJ1856 [Scoi2010]字符串(洛谷P1641)
-
洛谷 - 家谱 (字符串并查集)
-
【解题报告】洛谷 P2571 [SCOI2010]传送带
-
洛谷P2572 [SCOI2010]序列操作(ODT)
-
洛谷P4925 [1007]Scarlet的字符串不可能这么可爱(计数)