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

正题

题目链接:https://www.luogu.com.cn/problem/P4345


题目大意

TTT组询问,给出n,kn,kn,k
∑i=0k(ni)\sum_{i=0}^{k}\binom{n}{i}i=0k(in)
233323332333取模的值

1≤T≤105,1≤k≤n≤10181\leq T\leq 10^5,1\leq k\leq n\leq 10^{18}1T105,1kn1018


解题思路

因为模数很小,可以考虑用LucasLucasLucas定理,然后考虑怎么优化复杂度。
对于给出的n,kn,kn,k分成两个部分,第一部分是由kkk前面若干段长度为PPP的整段构成,这一部分的答案我们发现对于C⌊nP⌋⌊mP⌋×Cm%pn%pC_{\lfloor\frac{n}{P}\rfloor}^{\lfloor\frac{m}{P}\rfloor}\times C^{n\%p}_{m\% p}CPnPm×Cm%pn%p这两个值,后面那一个值的和是确定的,是∑i=1kCn%pk\sum_{i=1}^kC_{n\%p}^ki=1kCn%pk,前面那一部分的值我们可以递归下去计算。

然后第二部分是剩下的散段,这个部分我们也是自直接递归下去算就可以了

时间复杂度O(Tlog⁡n)O(T\log n)O(Tlogn)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll P=2333;
ll n,k,t,S[P][P],C[P][P];
ll Lucas(ll n,ll k){if(!k)return 1ll;if(!C[n%P][k%P])return 0;return Lucas(n/P,k/P)*C[n%P][k%P]%P;
}
ll solve(ll n,ll k){if(k<0)return 0;if(n<P)return S[n][min(n,k)];ll tmp=solve(n/P,k/P-1)*S[n%P][n%P]%P;tmp=(tmp+solve(n%P,k%P)*Lucas(n/P,k/P)%P)%P;return tmp;
}
signed main()
{C[0][0]=S[0][0]=1;for(ll i=1;i<P;i++)for(ll j=0;j<=i;j++)C[i][j]=((j?C[i-1][j-1]:0)+C[i-1][j])%P;for(ll i=1;i<P;i++){S[i][0]=C[i][0];for(ll j=1;j<=i;j++)(S[i][j]=S[i][j-1]+C[i][j])%=P;}scanf("%lld",&t);while(t--){scanf("%lld%lld",&n,&k);printf("%lld\n",solve(n,k));}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AServer - 基于Asp.net core Kestrel的超迷你http服务器

AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器。它可以集成进你的Core程序里&#xff0c;用来快速的响应Http请求&#xff0c;而不需要集成整个ASP.NET Core MVC 框架。一&#xff1a;什么是ASever&#xff1f;AServer就像它的名字一样&#xff0c;Just a serv…

特征根是复数的二阶微分方程

考虑如下微分方程d2ydx2a1dydxa2x0\frac{d^2y}{dx^2}a_1\frac{dy}{dx}a_2x0dx2d2y​a1​dxdy​a2​x0 众所周知&#xff0c;一般求得二阶常系数线性微分方程的通常由以下步骤 根据微分方程写出它的特征方程λ2a1λa20\lambda^2a_1\lambdaa_20λ2a1​λa2​0求解特征方程的两个…

Buy and Resell 2018中国大学生程序设计竞赛 - 网络选拔赛

题目 题意&#xff1a; n个宝石&#xff0c;宝石的买入或卖出价格固定&#xff0c;一天只能到一个珠宝商店&#xff08;从左到右&#xff09;&#xff0c;问最大利润是多少&#xff1f;在保证最大利润的同时最少交换次数是多少&#xff1f; 题解&#xff1a; 题目有两问&am…

基于Service fabric + Ocelot + Identity Server4 + 52ABP 的案例展示

10.24-27 大会Microsoft Tech Summit 2018 在上海举办&#xff0c;我 有幸受邀成为这场大会的讲师。Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行&#xff0c;这也会是国内举办的最后一届 Tech Summit&#xff0c;2019 年开始会以 Micr…

【网络流】植物大战僵尸(P2805)

正题 P2805 题目大意 在一个nmn\times mnm的平面上有若干植物&#xff0c;每个植物有其攻击集合&#xff0c;吃掉一个植物要先吃掉该植物右边的所有植物&#xff0c;且该植物不能在任何一个植物的攻击集合内&#xff0c;吃掉后有贡献ai,ja_{i,j}ai,j​&#xff0c;问你最大贡…

YbtOJ#763-攻城略池【线段树合并】

正题 题目链接:http://www.ybtoj.com.cn/problem/763 题目大意 给出nnn个点的一棵树&#xff0c;每个di0d_i0di​0的点每秒会产生一个士兵往根节点走&#xff0c;走到一个节点让一个节点did_idi​减一&#xff08;为000就不管&#xff09;。 求需要多久才能让所有点的ddd值变…

ARC106——E - Medals

E - Medals 首先看到这题看不出是一个匹配的题大佬题解 把每一个工人和每一天看成一个二分图&#xff0c;如果某个工人在某天工作&#xff0c;那么两者存在边&#xff0c;现在问题转化成至少需要多少天&#xff0c;能够把nnn个工人全部匹配kkk次 显然天数可以二分&#xff0…

2020 CCPC网络赛 赛后感

第一次参加&#xff0c;做过去年19年网络赛的题&#xff0c;去年是四个水题稳做出&#xff0c;然后还有两个线段树和树状数组的题&#xff08;好像是&#xff09;&#xff0c;所以本来对这次网络赛挺有信心的&#xff08;去年好像四个题就能进,当然要手速快&#xff09;。 这次…

Feature Flag 功能发布控制

背景产品在新功能发布前&#xff0c;可能会采取小流量测试的方式&#xff0c;或者在确定方案前使用A/B测试来衡量。一般开发人员会跟运维同学合作&#xff0c;通过一些现有平台切换机器或者流量来实现。本文介绍了另外一种简便的方式&#xff0c;并解释了其在持续集成上的应用&…

P4542-[ZJOI2011]营救皮卡丘【费用流,Floyd】

正题 题目链接:https://www.luogu.com.cn/problem/P4542 题目大意 给出n1n1n1个点mmm条边的无向图&#xff0c;kkk个人开始在000号点&#xff0c;一个人进入iii号点之前必须要有人经过i−1i-1i−1号点&#xff0c;求第一个人进入nnn号点时所有人的最短移动距离和。 1≤n≤150…

【线段树】GSS5 - Can you answer these queries V(luogu-SPOJ 2916)

正题 luogu-SPOJ 2916 题目大意 给你一个序列&#xff0c;有若干询问&#xff0c;每次给出左右端点的区间&#xff0c;问你最大字段和 解题思路 用线段树维护区间信息&#xff0c;询问的区间如果有交则分类讨论求解 code #include<cstdio> #include<cstring> #…

SmartSql 动态代理仓储

SmartSql源码&#xff1a;https://github.com/Ahoo-Wang/SmartSql1|1简介动态代理仓储(SmartSql.DyRepository)组件是SmartSql非常独特的功能&#xff0c;它能简化SmartSql的使用。对业务代码除了配置几乎没有侵入。可以说使用SmartSqlContainer是原始方法&#xff0c;而DyRepo…

HDU 6889 Graph Theory Class(CCPC网络赛)

hdu 6889 传说中的人均min25 题意&#xff1a; n个点的完全图&#xff0c;边权为lcm(i1,j1)&#xff0c;求mst&#xff08;最小生成树&#xff09; 题解&#xff1a; 我一开始以为是推公式&#xff0c;毕竟数据范围这么大&#xff0c;但是自己画图来看看mst的情况 注意求lc…

Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据

本来这篇文章在昨天晚上就能发布的&#xff0c;悲剧的是写了两三千字的文章居然没保存&#xff0c;结果我懵逼了。今天重新来写这篇文章。今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式。作者&#xff1a;依乐祝原文地址&#xff1a;https://www.cnblog…

【线段树】蝴蝶与花(P6859)

正题 P6859 题目大意 给你一个由1,2组成的序列&#xff0c;要求完成写下列操作&#xff1a; 修改一个数查找一段区间&#xff0c;使其区间和为s&#xff08;输出左端点最小的一组&#xff09; 解题思路 用线段树来维护该序列&#xff0c;对于每次查询&#xff0c;先找到从1…

YbtOJ#912-神秘语言【结论,欧拉定理】

正题 题目链接:http://www.ybtoj.com.cn/problem/912 题目大意 给出L,RL,RL,R&#xff0c;求有多少长度在[L,R][L,R][L,R]之间的字符串满足依次取出所有偶数位置的放在最前面后&#xff0c;与原字符串相同。字符集是所有小写字母。 1≤Q≤5,1≤L≤R≤1010,R−L≤51041\leq Q\…

path hdu6705

题意&#xff1a; 一个有向加权图&#xff0c;问所有路径汇中第k小的路径长度是多少&#xff1f; 注意一个边可以反复走多次 题解 做法参考 我们可以利用优先队列来做 利用优先队列实现每次所取为最短边 我们假设一条路是从u—>v,路径和为sum&#xff0c;u->v是u的所以…

.NET Core实践系列之SSO-跨域实现

前言接着上篇的《.net core实践系列之SSO-同域实现》&#xff0c;这次来聊聊SSO跨域的实现方式。这次虽说是.net core实践&#xff0c;但是核心点使用jquery居多。建议看这篇文章的朋友可以先看上篇《.net core实践系列之SSO-同域实现》做一个SSO大概了解。源码地址&#xff1a…

P2150-[NOI2015]寿司晚宴【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P2150 题目大意 将2∼n2\sim n2∼n选出一些分成两个集合&#xff0c;要求这两个集合中没有一对数不是互质的。求方案数对ppp取模 2≤n≤500,1≤p≤10102\leq n\leq 500,1\leq p\leq10^{10}2≤n≤500,1≤p≤1010 解题思路 数…

ABC181——F - Silver Woods

现在时间太少了&#xff0c;只能把自己不会的题补一下&#xff0c;会的题就不写了 F - Silver Woods 显然可以二分圆的半径&#xff0c;那么现在问题转化成判断半径为rrr的圆是否能够满足题意。 考虑什么情况下该半径的圆不能通过这些点。尝试用并查集维护一些关系 如果两个…