bzoj千题计划279:bzoj4591: [Shoi2015]超能粒子炮·改
http://www.lydsy.com/JudgeOnline/problem.php?id=4591

最后的式子合并同类项

#include<cstdio>
#include<iostream> using namespace std; typedef long long LL; const int p=; int C[][],s[][]; template<typename T>
void read(T &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} void pre()
{
C[][]=;
for(int i=;i<=p;++i)
{
C[i][]=;
for(int j=;j<=i;++j) C[i][j]=(C[i-][j-]+C[i-][j])%p;
}
for(int i=;i<=p;++i)
{
s[i][]=C[i][];
for(int j=;j<=p;++j) s[i][j]=(s[i][j-]+C[i][j])%p;
}
} int Lucas(LL n,LL m)
{
if(n<m) return ;
int ans=;
for(;m;n/=p,m/=p) ans=ans*C[n%p][m%p]%p;
return ans;
} int S(LL n,LL k)
{
if(k<) return ;
if(n<=p && k<=p) return s[n][k];
return (S(n%p,k%p)*Lucas(n/p,k/p)+S(n%p,p-)*S(n/p,k/p-))%p;
} int main()
{
int T;
LL n,k;
pre();
read(T);
while(T--)
{
read(n); read(k);
printf("%d\n",S(n,k));
}
}
bzoj千题计划279:bzoj4591: [Shoi2015]超能粒子炮·改的更多相关文章
- bzoj4591 [Shoi2015]超能粒子炮·改
Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...
- [bzoj4591][Shoi2015][超能粒子炮·改] (lucas定理+组合计数)
Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...
- BZOJ4591——[Shoi2015]超能粒子炮·改
1.题意:求 2.分析:公式恐惧症的同学不要跑啊QAQ 根据lucas定理-- 这一步大家都能懂吧,这是浅而易见的lucas定理转化过程,将每一项拆分成两项 那么下一步,我们将同类项合并 我们观察可以 ...
- [BZOJ4591][SHOI2015]超能粒子炮·改(Lucas定理+数位DP)
大组合数取模可以想到Lucas,考虑Lucas的意义,实际上是把数看成P进制计算. 于是问题变成求1~k的所有2333进制数上每一位数的组合数之积. 数位DP,f[i][0/1]表示从高到低第i位,这 ...
- BZOJ4591 SHOI2015超能粒子炮·改(卢卡斯定理+数位dp)
注意到模数很小,容易想到使用卢卡斯定理,即变成一个2333进制数各位组合数的乘积.对于k的限制容易想到数位dp.可以预处理一发2333以内的组合数及组合数前缀和,然后设f[i][0/1]为前i位是否卡 ...
- bzoj4591 [Shoi2015]超能粒子炮·改——组合数学(+求阶乘逆元新姿势)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4591 这题不是很裸啊(所以我就不会了) 得稍微推导一下,看这个博客好了:https://bl ...
- 【BZOJ4591】[SHOI2015]超能粒子炮·改 (卢卡斯定理)
[BZOJ4591][SHOI2015]超能粒子炮·改 (卢卡斯定理) 题面 BZOJ 洛谷 题解 感天动地!终于不是拓展卢卡斯了!我看到了一个模数,它是质数!!! 看着这个东西就感觉可以递归处理. ...
- Bzoj 4591: [Shoi2015]超能粒子炮·改 数论,Lucas定理,排列组合
4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 178 Solved: 70[Submit][Stat ...
- bzoj 4591: [Shoi2015]超能粒子炮·改 [lucas定理]
4591: [Shoi2015]超能粒子炮·改 题意:多组询问,求 \[ S(n, k) = \sum_{i=0}^n \binom{n}{i} \mod 2333,\ k \le n \le 10^ ...
随机推荐
- C#集合与泛型集合
看到这个标题,大家应该就知道有泛型集合,就有非泛型集合 既然都是集合,咱们今儿就简单的来对比讲解下 需要记住的不算太多,理解记忆.理解记忆 2017-11-0411:39:09 C# 泛型集合之非泛型 ...
- 萌新程序媛的首个作品,基于NoSQL的内容管理及低码开发平台
尽管入行有一段时间了,但之前还从来没想过要开发一款完整的软件产品.这个我跟朋友开发的第一款软件,希望大家帮我们多宣传推广.首个版本肯定有很多的不足,大家也给我们多提意见,还有很多规划中的功能要在之后的 ...
- CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备
分享一下Rocky版本的OpenStack安装管理经验: OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂 ...
- Final阶段基于spec评论作品
组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶 刘佳瑞 公冶令鑫 杨磊 刘欣 张宇 卢帝同 一.测试目标:拉格朗日2018——飞词 1.开始界面,只有一个开始游戏按钮,简约且醒目 ...
- 《Linux内核--分析Linux内核创建一个新进程的过程 》 20135311傅冬菁
20135311傅冬菁 分析Linux内核创建一个新进程的过程 一.学习内容 进程控制块——PCB task_struct数据结构 PCB task_struct中包含: 进程状态.进程打开的文件. ...
- Ubuntu安装jdk,正确配置环境变量
作为一个Linux新手,在写这篇博客之前,装了几次jdk,好多次都是环境变量配置错误,导致无法登录系统.经过几天的研究,今天新装系统,从头来完整配置一遍 系统版本:Ubuntu 16.04 JDK版本 ...
- A+B Format 思路及解题过程结果
A+B Format 思路及解题过程结果 github链接 题目 解题思路 这个题目的难点在于每三位用逗号隔开,以及带不带负号的问题.第一个问题,我的解决办法是先通过取整来取数,再通过取余来去数.第二 ...
- Final发布点评
1. 约跑App——nice!:为改进演示效果,本组使用摄像头实时采集投影的方式展示其作品,是一种演示的创新.本组重点放在了修改上次来着其他组发现的bug,不过新功能上好像没有加入多少,可能是保证软 ...
- MYSQL 解决中文字符集乱码问题的方法
修改 /etc/mysql/my.cnf 增加内容 [client] default-character-set = utf8mb4 [mysql] default-character-set = u ...
- emoji & click copy
emoji & click copy document.execCommand("copy"); https://clipboardjs.com/ https://www. ...