题目链接:戳我

设\(f[n][k]=\sum_{i=0}^kC_n^i\pmod {2333}\)
那么根据卢卡斯定理我们知道\(f[n][k]=\sum_{i=0}^kC_{n/p}^{i/p}\times C_{n\%p}^{i\%p}\)

\(=C_{n/p}^0\times \sum_{i=0}^{p-1}C_{n\%p}^i+C_{n/p}^1\times \sum_{i=0}^{p-1}C_{n\%p}^i+...+C_{n/p}^{k/p-1}\times \sum_{i=0}^{p-1}C_{n\%p}^i+C_{n/p}^{k/p}\times \sum_{i=0}^{k\%p}C_{n\%p}^i\)

\(=\sum_{i=0}^{p-1}C_{n\%p}^i\times(C_{n/p}^0+C_{n/p}^1+...+C_{n/p}^{k/p-1})+\sum_{i=0}^{k\%p}C_{n\%p}^i\)

\(=\sum_{i=0}^{p-1}C_{n\%p}^i\times \sum_{j=1}^{k/p-1}C_{n/p}^j+\sum_{i=0}^{k\%p}C_{n\%p}^i\)

\(=f[n\%p][p-1]\times f[n/p][k/p-1]+C_{n/p}^{k/p}\times f[n\%p][k\%p]\)

取模的那些我们可以先预处理出来(小于等于2333),然后除法操作的那些我们递归计算即可。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define p 2333
using namespace std;
int T;
ll n,k;
ll c[2500][2500],f[2500][2500];
inline void init()
{c[0][0]=1;for(int i=1;i<=2333;i++)c[i][0]=c[i][i]=1;  for(int i=1;i<=2333;i++)for(int j=1;j<i;j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%p;
}
inline ll lucas(ll down,ll up)
{if(down==up||up==0) return 1;if(down<up) return 0;return lucas(down/p,up/p)*c[down%p][up%p]%p;
}
inline ll F(ll down,ll up)
{if(!down||!up) return 1;if(up<0||down<0) return 0;if(down<2333&&up<2333) return f[down][up];return (f[down%p][p-1]*F(down/p,up/p-1)%p+lucas(down/p,up/p)*f[down%p][up%p]%p)%p;
}
int main()
{#ifndef ONLINE_JUDGEfreopen("ce.in","r",stdin);#endifscanf("%d",&T);init();f[0][0]=1;for(int i=1;i<=2333;i++) f[i][0]=1;for(int i=0;i<=2333;i++) for(int j=1;j<=2333;j++)f[i][j]=(f[i][j-1]+c[i][j])%p;while(T--){scanf("%lld%lld",&n,&k);printf("%lld\n",F(n,k));}return 0;
}

转载于:https://www.cnblogs.com/fengxunling/p/10418598.html

[SHOI2015] 超能粒子炮·改相关推荐

  1. 【BZOJ4591】[SHOI2015]超能粒子炮·改 (卢卡斯定理)

    [BZOJ4591][SHOI2015]超能粒子炮·改 (卢卡斯定理) 题面 BZOJ 洛谷 题解 感天动地!终于不是拓展卢卡斯了!我看到了一个模数,它是质数!!! 看着这个东西就感觉可以递归处理. ...

  2. P4345 [SHOI2015]超能粒子炮·改

    P4345 [SHOI2015]超能粒子炮·改 题意: 求解式子∑i=0kCni%p\sum_{i=0}^{k}C_{n}^{i} \% p∑i=0k​Cni​%p n,k<=1e18 题解: ...

  3. [2019.2.24]BZOJ4591 [Shoi2015]超能粒子炮·改

    以下除法一律为整除. 求\(\sum_{i=0}^kC_n^i\ mod\ p,p=2333\) 设\(f(i,j)=\sum_{k=0}^jC_i^k\) \(f(n,k)=\sum_{i=0}^k ...

  4. 【[SHOI2015]超能粒子炮·改】

    就是运用\(Lucas\)推一个柿子 首先是前置芝士\(Lucas\)定理 \[C_{n}^{m}\%p=C_{n/p}^{m/p}*C_{n\%p}^{m\%p}\%p\] 至于证明 我建议去问一下 ...

  5. BZOJ4591 SHOI2015超能粒子炮·改(卢卡斯定理+数位dp)

    注意到模数很小,容易想到使用卢卡斯定理,即变成一个2333进制数各位组合数的乘积.对于k的限制容易想到数位dp.可以预处理一发2333以内的组合数及组合数前缀和,然后设f[i][0/1]为前i位是否卡 ...

  6. [BZOJ4591][SHOI2015]超能粒子炮·改(Lucas定理+数位DP)

    大组合数取模可以想到Lucas,考虑Lucas的意义,实际上是把数看成P进制计算. 于是问题变成求1~k的所有2333进制数上每一位数的组合数之积. 数位DP,f[i][0/1]表示从高到低第i位,这 ...

  7. loj2038「SHOI2015」超能粒子炮・改(卢卡斯的理解和延伸+数位dp)

    我们发现暴力+裸的卢卡斯可以骗到50分 所以就应该朝卢卡斯的方向去想. 卢卡斯是把n,k拆成两个p进制数进行统计的. 注意到如果在某一位ai>nia_i>n_iai​>ni​,a表示 ...

  8. P4345-[SHOI2015]超能粒子炮·改【Lucas定理,类欧】

    正题 题目链接:https://www.luogu.com.cn/problem/P4345 题目大意 TTT组询问,给出n,kn,kn,k求 ∑i=0k(ni)\sum_{i=0}^{k}\bino ...

  9. 超能粒子炮·改 HYSBZ - 4591

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4591 就是求:                    C(n,0)+C(n,1)+... ...

最新文章

  1. /etc/profile ,/etc/bashrc ,~/.bash_profile,~/ .bashrc 区别与联系
  2. android读取剪切板的方法,Android复制粘贴剪切板内容的一种方法
  3. Summer Plan(挖坑待填)
  4. zabbix工作流程(自定义添加监控项目)
  5. ML之LoRDTRF:基于LoRDT(CART)RF算法对mushrooms蘑菇数据集(22+1,6513+1611)训练来预测蘑菇是否毒性(二分类预测)
  6. python PyQt5 QtCore.QPointF类、QPointF类与QPoint类区别
  7. How is a Batch request handled in the backend
  8. 很简单很简单的DBHelper类
  9. pmtk3怎样离线安装
  10. visual studio 判断dropdownlist选的是什么_心理测试:五个小蓝人,你选哪个?测你是不是一个容易追求的人...
  11. java制作加载界面_Java如何制作启动界面?
  12. 我在GNU/Linux下使用的桌面环境工具组合
  13. 2020 mit6.s081 os Lab: xv6 traps
  14. 计算机实验环境怎么写visual,visualfoxpro计算机实验报告答案
  15. HttpClient4
  16. 国威电话交换机如何设置加拨17909IP功能
  17. Bezier曲线生成【计算机图形学】
  18. Ever-Flowers IN Never-Dream(19)
  19. jmeter使用BeanShell Sampler测试自己写的java接口(一)
  20. java 音频转换_java实现音频转换

热门文章

  1. uva 12730(期望经典)
  2. 使用UIActivityIndicatorView 和多线程
  3. WSO2 WSF/CPP 网络服务开发例子1--HELLO
  4. Select查询之通配符
  5. 【渗透测试实战】PHP语言有哪些后门?以及利用方法
  6. Windows域策略设置 禁止客户端修改IP地址【全域策略生效】
  7. docker容器下mysql更改WordPress的site address和home(URL)
  8. c++指定在某一线程运行_iPhone11升级iOS14运行速度测试:结果有点小惊喜
  9. 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性
  10. Flex4.5中检测网络连接类型