Link:

传送门

Solution:

记录一下推$\sum_{i=0}^k C_n^i$的过程:

其实就是将相同的$i/p$合起来算,这样每个里面都是一个可以预处理的子问题

接下来递归下去算即可

Tip:推式子时尽量化出与模数相关的量方便预处理

Code:

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
#define pb push_back
typedef double db;
typedef long long ll;
typedef pair<int,int> P;
int T;const int MOD=;
ll C[MOD+][MOD+],sum[MOD+][MOD+]; ll Lucas(ll x,ll y)
{
if(y==) return ;
return Lucas(x/MOD,y/MOD)*C[x%MOD][y%MOD]%MOD;
}
ll cal(ll n,ll k)
{
if (k<) return ;
return (cal(n/MOD,k/MOD-)*sum[n%MOD][MOD-]+Lucas(n/MOD,k/MOD)*sum[n%MOD][k%MOD])%MOD;
}
int main()
{
C[][]=;sum[][]=;
for (int i=;i<MOD;i++) sum[][i]=;
for (int i=;i<MOD;i++)
{
C[i][]=sum[i][]=;
for (int j=;j<=i;j++) C[i][j]=(C[i-][j-]+C[i-][j])%MOD;
for (int j=;j<MOD;j++) sum[i][j]=(sum[i][j-]+C[i][j])%MOD;
}
scanf("%d",&T);
while (T--)
{
ll n,k;
scanf("%lld%lld",&n,&k);
printf("%lld\n",cal(n,k));
}
return ;
}

最新文章

  1. Oracle数据库shutdown immediate被hang住的几个原因
  2. nio 弊端
  3. MySQL使用详解--根据个人学习总结
  4. hdu 1735 字数统计
  5. nmap与ntop
  6. call(this)引起的对闭包的重新理解
  7. div模块变灰
  8. 8.WCF简化的 AJAX(*)
  9. 总结&amp;计划
  10. 数学之路(3)-机器学习(3)-机器学习算法-PCA
  11. Xcode4.6 自制iOS可用的 Framework
  12. iOS-UINavigationBar【颜色设置】
  13. fiddler2请求参数乱码
  14. Single Number II leetcode java
  15. Linux内核分析——第三周学习笔记
  16. XPages访问关系型数据库技术与最佳实践
  17. flash object实现视频播放效果
  18. BZOJ1670 [Usaco2006 Oct]Building the Moat护城河的挖掘
  19. spring boot 使用application.properties 进行外部配置
  20. 【bzoj1806】[Ioi2007]Miners 矿工配餐 dp

热门文章

  1. 钉钉头像大小设置 阿里cdn尺寸截取参数设置
  2. Node程序debug小记
  3. [Openwrt 扩展上篇]USB挂载&amp;U盘启动&amp;Samba共享
  4. 最短路径—Floyd算法
  5. easyui表单提交验证form
  6. 如何查看页面是否开启了gzip压缩
  7. POJ 2516 Minimum Cost(拆点+KM完备匹配)
  8. GreenPlum学习笔记:基础知识
  9. 网络编程--Socket与ServerSocket
  10. Linux同步互斥(Peterson算法,生产者消费者模型)