博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[SCOI2010]字符串
阅读量:7001 次
发布时间:2019-06-27

本文共 2182 字,大约阅读时间需要 7 分钟。

 

思路:

设1为向(1,1)方向走,0为向(1,-1)方向走。那么题意可转化为从(0,0)走到(n+m,n-m)且不能跨过y=0的方案数。总方案数C(n+m,n),然后要减去不合法的即线路通过y=-1的。将线路与y=-1交点的左边沿着y=-1做对称操作,则最后等价于从(0,-2)走到(n+m,n-m)的方案数。因为从(0,-2)

走到(n+m,n-m)需要向上走n-m+2次,一共要走n+m次。设向上向下各走x,y,那么x+y=n+m,x-y=n-m+2得到x=n+1,y=m-1,所以不合法的方案为C(n+m,m-1)。

 

#include
#include
#include
using namespace std;const int mod=20100403;const int N=1001;int n,m,ans,f[2][N][N];void dp(){// f[n+m][n][m]=1; int now=0; f[now][n][m]=1; for(int i=n+m-1;~i;i--){ now^=1; for(int j=0;j<=n;j++){ for(int k=0;k<=m;k++){ if(j>k&&k
=mod) f[now][j][k]-=mod; } } } printf("%d\n",f[now][0][0]);}int main(){ freopen("string.in","r",stdin); freopen("string.out","w",stdout); cin>>n>>m; if(n
10分dp
#include
#include
#include
using namespace std;const int mod=20100403;const int N=1e5+5;int n,m,ans,f[2][N];void dp(){ int now=1; f[0][0]=1; for(int i=0;i<=n;i++){ now^=1; for(int j=0;j<=min(i,m);j++){ if(i) f[now][j]+=f[now^1][j]; if(j) f[now][j]+=f[now][j-1]; if(f[now][j]>=mod) f[now][j]-=mod; } for(int j=0;j<=min(i,m);j++) f[now^1][j]=0; } printf("%d\n",f[now][m]);}int main(){ freopen("string.in","r",stdin); freopen("string.out","w",stdout); cin>>n>>m; if(n
30分dp

 

//ans=C(n+m,n)-C(n+m,m-1){来源折线定理}#include
#include
using namespace std;typedef long long ll;const int N=2e6+5;const ll mod=20100403;int n,m;ll ans,fz[N],fm[N];void exgcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1;y=0;return ;} exgcd(b,a%b,d,y,x); y-=a/b*x;}ll inv(ll a,ll p){ ll d,x,y; exgcd(a,p,d,x,y); return d==1?(x%p+p)%p:-1;}int main(){ cin>>n>>m; int S=n+m;fz[0]=fm[0]=1; for(ll i=1;i<=S;i++) fz[i]=(fz[i-1]*i)%mod; fm[S]=inv(fz[S],mod); for(ll i=S-1;i;i--) fm[i]=(fm[i+1]*(i+1))%mod; ans=(fz[n+m]*fm[n]%mod*fm[m]%mod-fz[n+m]*fm[m-1]%mod*fm[n+1]%mod+mod)%mod; cout<

 

转载于:https://www.cnblogs.com/shenben/p/6647547.html

你可能感兴趣的文章
初识Java模板引擎Beetl之简单示例
查看>>
Oracle UNDO表空间的管理
查看>>
canal.deployer-1.1.0版本,当监听到数据库变动时,server端报异常,docker单核引起的问题...
查看>>
JAVA并发编程:干掉 Synchronized
查看>>
JAVA .class 文件防止反编译
查看>>
iOS-<UITabBarControllerDelegate> 代理不执行
查看>>
easyui实现datagrid列标题拖动
查看>>
CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境
查看>>
在Websphere上修改项目的web.xml中的配置后不起作用
查看>>
JAVA 数据计算、取整、+1、四舍五入
查看>>
wshell修改了upload功能,増加显示图片功能
查看>>
ERP中标准成本的差异分析控制
查看>>
linux 中断的上半部和下半部
查看>>
单例模式的七种写法
查看>>
好用到吐血!APP设计利器Sketch
查看>>
Android TensorFlow环境搭建
查看>>
【细品架构1/100】架构之缘起
查看>>
在js中获取后台传出的json数据
查看>>
Drools的JSR94实现形式
查看>>
oracle的nvl和nvl2
查看>>