题目链接:

http://www.lydsy.com/JudgeOnline/problem.php?id=4591


就是求:


                   C(n,0)+C(n,1)+...+C(n,k)mod2

lucas  定理: C(n,m)%P=C(n/p,m/p)*C(n%p,m%p)%p;

公式推了半天,结果思路混乱,不知道推出了个啥,哎,果断搜了一波代码,看了半天也不是很懂,先记录一下吧!

这个博客写的可以的:点击打开链接


果然还是很菜,先贴代码吧:

#include<cstdio>
#include<cmath>
#include<iostream>
#define maxn 2500
using namespace std;const int MOD=2333;
typedef long long ll;
ll c[maxn][maxn],s[maxn][maxn];void init()
{c[0][0]=1;for(int i=1;i<=MOD;i++){c[i][0]=c[i][i]=1;for(int j=1;j<=i;j++)c[i][j]=(c[i-1][j]+c[i-1][j-1])%MOD;}for(int i=0;i<=MOD;i++){s[i][0]=c[i][0];for(int j=1;j<=MOD;j++){s[i][j]=(s[i][j-1]+c[i][j])%MOD;}}
}
ll luckc(ll n,ll k)
{if(k==0)  return 1;return (c[n%MOD][k%MOD]*luckc(n/MOD,k/MOD))%MOD;
}
ll lucks(ll n,ll k)
{if(k<0)  return 0;return (lucks(n/MOD,k/MOD-1)*s[n%MOD][MOD-1]+luckc(n/MOD,k/MOD)*s[n%MOD][k%MOD])%MOD;
}
int main()
{int t;ll n,k;init();scanf("%d",&t);while(t--){scanf("%lld%lld",&n,&k);printf("%lld\n",lucks(n,k));}return 0;
}
keep driving 


超能粒子炮·改 HYSBZ - 4591相关推荐

  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. P4345-[SHOI2015]超能粒子炮·改【Lucas定理,类欧】

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

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

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

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

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

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

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

  8. [SHOI2015] 超能粒子炮·改

    题目链接:戳我 设\(f[n][k]=\sum_{i=0}^kC_n^i\pmod {2333}\) 那么根据卢卡斯定理我们知道\(f[n][k]=\sum_{i=0}^kC_{n/p}^{i/p}\ ...

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

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

最新文章

  1. 平头哥发布一站式芯片设计平台“无剑”,芯片设计成本降低50%
  2. 常见数控机床的数据采集方法比较
  3. java创建日程到期提醒_Mac用户必备日程时间管理器,有计划有效率的人生才算完美!...
  4. 欢迎您参加_ADT技术培训营
  5. Axure RP使用攻略--动态面板的用途(8)
  6. 搜狗输入法Android5.1,ESXI 服务器断电之后一直 LOADING MODULE IPMI_SI_DRV 的解决办法...
  7. 清华博士的逆袭路:从延毕警告到在顶刊发文,我蛰伏了四年
  8. Linux笔记-配置本地光盘未yum源
  9. wpf 依赖强制回调
  10. mediarecorder路径设置为localsocket_PR学习之旅:pr怎么才能定位和修改视频保存路径,操作很简单...
  11. Keytool 简述
  12. 基于贝叶斯决策理论的分类方法
  13. 图片制作、LOGO制作、ICO文件
  14. 【CTF】buuctf web 详解(持续更新)
  15. 小飞升值记——(4)
  16. Ubuntu18.04手动安装Realtek网卡驱动
  17. 用JavaScript实现,用户输入自己的汽油编号,然后输入自己加多少升,就弹出价格
  18. 解决电视盒子占用wifi带宽问题
  19. pandas读取excel数据以及matplotlib的散点与直线图绘画
  20. linux -- 嵌入式linux下wifi无线网卡驱动

热门文章

  1. Python最新操作微信解决方案(附破解文件和代码)
  2. Chicken Soup 【你,远比你以为的更美丽】
  3. 电脑常识:连不上网络,只显示飞行模式?
  4. 谷歌cloud_Google Cloud如何为您的应用程序安全提供帮助?
  5. 36Kr皇包车-第1个投资退出案例
  6. 《结构信息论》——结构信息论Ⅰ:信息处理的数学原理
  7. 输入压缩空间量是分区量吗_win7系统压缩分区的操作教程
  8. 网站广告怎样做效果最好?
  9. 页面title加icon
  10. 电商项目测试实战(二)