博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【loj6142】「2017 山东三轮集训 Day6」A 结论题+Lucas定理
阅读量:4987 次
发布时间:2019-06-12

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

题解:

当奇数

发现答案就是C(n,1)^2+C(n,3)^2+。。。C(n,n)^2

倒序相加,发现就是C(2n,n) 所以答案就是C(2n,n)/2

当偶数

好像并不会证

打表出来可以得到

2.当n为偶数且为4的倍数时,答案为C(2n,n)+C(n,n/2)/2

3.当n为偶数且不为4的倍数时,答案为C(2n,n)-C(n,n/2)/2

另外Claris告诉我在p较小时可以数位dp来求

先用lucas定理 C(n,m)=C(n%p,m%p)*C(n/p,m/p)

然后我们就可以把n表示成p进制

答案就是m在p进制下和对应n求C的乘积

然后我们可以数位dp这个东西

 

#include 
using namespace std;#define ll long long#define rint register ll#define IL inline#define rep(i,h,t) for (rint i=h;i<=t;i++)#define dep(i,t,h) for (rint i=t;i>=h;i--)const ll p=1000003;const ll mo=1000003;const ll INF=1e18;const ll N=2e6;ll n,cnt=0,a[50],jc1[N],jc2[N],f[N][2][2];void gcd(ll x,ll y,ll &a,ll &b){ if (y==0) { a=1; b=0; return; } gcd(y,x%y,b,a); b-=a*(x/y);}ll C(ll x,ll y){ if (x
p) x-=p;}int main(){ cin>>n; while (n) a[++cnt]=n%p,n/=p; jc1[0]=jc2[0]=1; rep(i,1,p) { jc1[i]=(jc1[i-1]*i)%p; jc1[i]=(jc1[i]+p)%p; ll x,y; gcd(i,p,x,y); jc2[i]=(jc2[i-1]*x)%p; jc2[i]=(jc2[i]+p)%p; } f[cnt+1][0][0]=1; dep(j,cnt,1) { ll tmp1j=0,tmp1o=0; rep(i,0,a[j]-1) { ll kk=C(a[j],i); kk=(kk*kk)%mo; if (i%2) jf(tmp1j,kk); else jf(tmp1o,kk); } f[j][0][1]=(f[j+1][0][0]*tmp1o%mo+f[j+1][1][0]*tmp1j%mo)%mo; f[j][1][1]=(f[j+1][0][0]*tmp1j%mo+f[j+1][1][0]*tmp1o%mo)%mo; if (a[j]%2) jf(tmp1j,1); else jf(tmp1o,1); f[j][0][1]+=(f[j+1][0][1]*tmp1o%mo+f[j+1][1][1]*tmp1j%mo)%mo; f[j][1][1]+=(f[j+1][0][1]*tmp1j%mo+f[j+1][1][1]*tmp1o%mo)%mo; if (f[j+1][1][0]) f[j][(1+a[j])%2][0]=1; else f[j][a[j]%2][0]=1; } ll ans=(f[1][0][1]+f[1][0][0])%mo; cout<
<

 

转载于:https://www.cnblogs.com/yinwuxiao/p/9407826.html

你可能感兴趣的文章
《Unity游戏开发实战》pdf
查看>>
jsday24
查看>>
(二十)WebGIS中图层树功能的设计和实现
查看>>
ORA-10456:cannot open standby database;media recovery session may be in process
查看>>
session服务器Nginx+Tomcat+Memcached集群Session共享
查看>>
javascript的时间描述图怎么写
查看>>
Maximum Gap 164
查看>>
Robot Framework Share 4
查看>>
【LeetCode】155. Min Stack
查看>>
【LeetCode】214. Shortest Palindrome
查看>>
现有资源和jsapi的融合一种方式
查看>>
UICollectionViewController的简单使用及一些注意点(json)
查看>>
Vue.js 源码分析(十三) 基础篇 组件 props属性详解
查看>>
Ubuntu系统升级内核方法
查看>>
Spring Bean单例与线程安全
查看>>
EasyUI datagrid.getSelections 没有返回正确的选择行数
查看>>
分享一个随机重排函数(C#)
查看>>
Asp.Net Core在CentOS部署与注意
查看>>
自反+递归 实现评论的无限引用
查看>>
新闻发布系统
查看>>