题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3028

式子很好推,详细可以看这篇博客:https://blog.csdn.net/wu_tongtong/article/details/78856565

所以就是要求 C(n+2,3) ,n 很大但是模数很小,可以用 Lucas 定理;

总觉得真的写了高精度和 Lucas 定理有点麻烦...而且还因为一处忘记取模 RE 了一次...

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int const xn=,mod=;
int jc[mod+],jcn[mod+];
char ch[xn];
struct N{int a[xn];}n;
ll pw(ll a,int b)
{
ll ret=;
for(;b;b>>=,a=(a*a)%mod)
if(b&)ret=(ret*a)%mod;
return ret;
}
int md(N x)
{
for(int i=x.a[];i>;i--)
x.a[i-]+=(x.a[i]%mod)*,x.a[i]=;
return x.a[]%mod;//%mod
}
int C(int n,int m){return ((ll)jc[n]*jcn[m])%mod*jcn[n-m]%mod;}
int Lucas(N n,int m)
{
if(n.a[]<=&&n.a[]<)return ;
int p=md(n);
return C(p,m%mod)%mod;
}
int main()
{
scanf("%s",ch+); int l=n.a[]=strlen(ch+);
for(int i=;i<=l;i++)n.a[i]=ch[l-i+]-'';
n.a[]+=;
for(int i=;i<=l;i++)n.a[i+]+=n.a[i]/,n.a[i]%=;
if(n.a[l+])n.a[]++; jc[]=;
for(int i=;i<mod;i++)jc[i]=(ll)jc[i-]*i%mod;
jcn[mod-]=pw(jc[mod-],mod-);
for(int i=mod-;i>=;i--)jcn[i]=(ll)jcn[i+]*(i+)%mod; printf("%d\n",Lucas(n,));
return ;
}

最新文章

  1. VS 设置编译后的程序可以以管理员身份运行
  2. Liferay 6开发学习(二十六):数据库连接相关问题
  3. Web Api 返回参数,实现统一标准化!
  4. SystemFile
  5. ubuntu12.04下同步cm10源码(个人记录,当作笔记)
  6. 【Daily】 2014-4-23
  7. Problem 2128 最长子串(kmp+strstr好题经典)
  8. char[]转换成wchar_t的转换方法(GNU Libc规定wchar_t为32位)
  9. docker学习笔记18:Dockerfile 指令 VOLUME 介绍
  10. java--方法和成员的继承,访问
  11. linux shell 不同进制数据转换(二进制,八进制,十六进制,base64) (转)
  12. 使用PCA + KNN对MNIST数据集进行手写数字识别
  13. crontab执行带参数的php脚本,并取得参数[转]
  14. fiddler 抓取 nodejs
  15. Oracle VM VirtualBox虚拟机内Linux系统硬盘扩容步骤(CentOS6.5)
  16. 窗口关闭时弹出内存不能为read
  17. angular raido checkbox select取值
  18. Windows下好用的git客户端--GitExtentions
  19. 使用tinymce富文本
  20. 《ASP.NET MVC企业实战》(二) MVC开发前奏

热门文章

  1. Naive Bayesian文本分类器
  2. 使用正則表達式对URL进行解析
  3. mysql的安装、C++訪问mysql数据库、编码设置问题
  4. 数据挖掘 与 Web开发何去何从
  5. 图像处理算法2——Otsu最佳阈值分割法http://blog.csdn.net/xiaqunfeng123/article/details/17121195
  6. 阿里云OSS对象存储 简单上传文件
  7. 热烈庆祝UE4完全免费Free---GitHub的关联方式
  8. Discuz系列1:安装
  9. CIDR(无类域间路由)(转载)
  10. 使用git checkout 指定git代码库上的指定分支