首页 > 其他分享 >BZOJ4403 序列统计 题解

BZOJ4403 序列统计 题解

时间:2023-12-17 19:44:06浏览次数:29  
标签:begin dbinom 题解 ll 序列 BZOJ4403 aligned inv jc

题目传送门

前置知识

排列组合 | 卢卡斯定理

解法

记 \(m=r-l+1,0 \le k \le n-1\) ,枚举长度 \(i\) ,等价于求 \(\sum\limits_{j=1}^{m}x_j=i\) 的非负整数解的数量。接着推式子就行。

\(\begin{aligned} \sum\limits_{i=1}^{n}\dbinom{m+i-1}{i} \end{aligned}\)

\(\begin{aligned} &=\dbinom{m}{0}-1+\sum\limits_{i=1}^{n}\dbinom{m+i-1}{i} \end{aligned}\)

\(\begin{aligned} &=\dbinom{m}{1}+\dbinom{m}{0}-1+\sum\limits_{i=2}^{n}\dbinom{m+i-1}{i} \end{aligned}\)

\(\begin{aligned} &=\dbinom{m+1}{1}-1+\sum\limits_{i=2}^{n}\dbinom{m+i-1}{i} \end{aligned}\)

\(\begin{aligned} &=\dbinom{m+k}{k}-1+\sum\limits_{i=k+1}^{n}\dbinom{m+i-1}{i} \end{aligned}\)

\(\begin{aligned} &=\dbinom{m+n-1}{n-1}+\dbinom{m+n-1}{n}-1 \end{aligned}\)

\(\begin{aligned} &=\dbinom{n+m}{n}-1 \end{aligned}\)

因为 \(n,m\) 较大,所以需要跑卢卡斯定理。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define sort stable_sort 
#define endl '\n'
ll inv[1000010],jc[1000010],jc_inv[1000010];
ll C(ll n,ll m,ll p)
{
	if(n>=m&&n>=0&&m>=0)
	{
		return (jc[n]*jc_inv[m]%p)*jc_inv[n-m]%p;
	}
	else
	{
		return 0;
	}
}
ll lucas(ll n,ll m,ll p)
{
	return m?C(n%p,m%p,p)*lucas(n/p,m/p,p)%p:1;
}
int main()
{
	ll t,n,m,l,r,i,p=1000003;
	cin>>t;
	inv[1]=1;
	jc[0]=jc_inv[0]=jc[1]=jc_inv[1]=1;
	for(i=2;i<=p-1;i++)
	{
		inv[i]=(p-p/i)*inv[p%i]%p;
		jc[i]=jc[i-1]*i%p;
		jc_inv[i]=jc_inv[i-1]*inv[i]%p;
	}
	for(i=1;i<=t;i++)
	{
		cin>>n>>l>>r;
		m=r-l+1;
		cout<<(lucas(n+m,n,p)+p-1)%p<<endl;
	}
	return 0;
}

标签:begin,dbinom,题解,ll,序列,BZOJ4403,aligned,inv,jc
From: https://www.cnblogs.com/The-Shadow-Dragon/p/17909640.html

相关文章

  • 【电子公文系统】常见问题解答
    Q:如何在电子公文系统中创建新文档?A:登录系统后,点击“新建文档”按钮,选择相应的文档模板开始编辑。编辑完成后,可以选择保存草稿或提交审批。Q:我忘记了我的登录密码,应该怎么办?A:在登录界面点击“忘记密码”链接,根据提示输入你的电子邮箱或电话号码以接收重置密码的......
  • 最长公共子序列
    最长公共子序列一、什么是最长公共子序列(LongestCommonSubsequence,LCS)?最长公共子序列(LCS)是指在两个序列中,找出一个最长的子序列,使得这个子序列在这两个序列中都出现过。换句话说,就是从两个序列中删除一些元素后,剩下的最长公共子序列的长度。二、原理我们可以使用动态......
  • 2023ISCTF的fry题解及进阶格式化利用
    这题是一个比较好的进阶格式化利用。就是有点繁琐。先惯例checksec一下心脏骤停hhh。没事先分析一下Main函数int__cdeclmain(intargc,constchar**argv,constchar**envp){init(argc,argv,envp);puts("WelcometoISCTF~~~~~~~~~~~~~~~~");puts("Doyouwantto......
  • [Ynoi2004] rpmtdq 题解
    人生第一发\(Ynoi\)的题,写一篇题解庆祝一下传送门我们可以发现,对于二元组\((x,y)\),若存在一个\(dist(i,j)\ledist(x,y),x<i<j<y\)那么答案肯定不是二元组\((x,y)\)我们可以考虑把这些肯定不是的点剔除掉考虑怎么找,我们可以先点分治,求出每个点......
  • AT_abc333_e [ABC333E] Takahashi Quest 题解
    AT_abc333_e[ABC333E]TakahashiQuest题解思路解析可以发现一瓶药水无论什么时候拿被使用掉的时间都是不会变的,所以如果我们想让一瓶药水再背包里待得时间尽可能的短就要让它尽可能的被晚拿起来,于是我们就可以想到使用栈存下每一瓶同类的药水分别出现的时间,此时每遇到一只怪......
  • 2022年RHCE认证考题解析最新版—RH294环境【转】
    由于本人10.17已成功考过CSA,经过两周所学的ansible并结合题库整理出来的CE解析版我也是11月月底就要考了,不过这套解析也是可以满足今年的redhat8题库文中可能涉及一些命令的参数解释,如有不懂的伙伴可参考我的笔记Ansibleps:一切模板似的题库考试,都需要经过大脑的理解方可顺利上......
  • 删除序列相同元素并保持顺序
    问题怎样在一个序列上面保持元素顺序的同时消除重复的值?解决方案如果序列上的值都是hashable类型,那么可以很简单的利用集合或者生成器来解决这个问题。比如:defdedupe(items):seen=set()foriteminitems:ifitemnotinseen:yielditemseen.add(item) 下面是使......
  • VMware workstation中安装的centos虚拟机ip自动获取可以上网,设置静态ip不能上网问题解
    一、需求   linux中我们会设置hosts文件,这会涉及ip和域名的设置,但是如果虚拟机自动获取ip地址的话,这就意味着之前设置的hosts文件需要重新修改,所以我们需要设置虚拟机为静态ip地址。二、故障现象   我linux虚拟机最开始是自动获取的ip地址,用的nat模式,是可以上网的,......
  • 一道很不错的高中数学题的题解解析
    引:上周六上午把一道高中的数学竞赛题(一道8分的填空题,原题如下图所示)当成一道大题(如上)郑重其事地和孩子以互动的方式探讨了这个题的题解分析. 这是一道出得很好的题.其题解所涉及的知识不超出高一目前所学内容,因此高一的学生也是可能做得出来的.但这题是一道很综合的题,涉......
  • 【理论篇】SaTokenException: 非Web上下文无法获取Request问题解决 -理论篇
    在我们使用sa-token安全框架的时候,有时候会提示:SaTokenException:非Web上下文无法获取Request错误截图:在官方网站中,查看常见问题排查:错误追踪:跟着源码可以看到如下代码:从源码中,我们可以看到,由于非Web上下文中无法直接获取HttpServletRequest对象,因此无法直接在子线程中使用SA-Token......