Bzoj 4403: 序列统计 Lucas定理,组合数学,数论
4403: 序列统计
Time Limit: 3 Sec Memory Limit: 128 MB
Submit: 328 Solved: 162
[Submit][Status][Discuss]
Description
给定三个正整数N、L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量。输出答案对10^6+3取模的结果。
Input
输入第一行包含一个整数T,表示数据组数。第2到第T+1行每行包含三个整数N、L和R,N、L和R的意义如题所述。
Output
输出包含T行,每行有一个数字,表示你所求出的答案对106+3取模的结果。
Sample Input
Sample Output
HINT
提示
【样例说明】满足条件的2个序列为[4]和[5]。
【数据规模和约定】对于100%的数据,1≤N,L,R≤10^9,1≤T≤100,输入数据保证L≤R。
Source
题解:
Lucas定理+组合数学
公式推导见:http://blog.csdn.net/lych_cys/article/details/50616439
公式化简见:http://blog.csdn.net/popoqqq/article/details/50636866
化简:
设k=r-l;
ans=∑(i=1……n)C(i+k,k)
可以利用杨辉三角,C(n,m)=C(n-1,m)+C(n-1,m-1);
ans=C(1+k,k)+C(2+k,k)+C(3+k,k)+……+C(n+k,k)
=C(1+k,1+k)-1+C(1+k,k)+C(2+k,k)+C(3+k,k)+……+C(n+k,k)
=(C(1+k,1+k)+C(1+k,k))+C(2+k,k)+C(3+k,k)+……+C(n+k,k)-1
=(C(2+k,1+k)+C(2+k,k))+C(3+k,k)+……+C(n+k,k)-1
=(C(3+k,1+k)+C(3+k,k))+……+C(n+k,k)-1
……
=C(n+k+1,k+1)-1
直接Lucas定理搞就可以了
注意输出要写 ((ans-1LL)%MOD+MOD)%MOD ,要不会WA(输出-1了)
#include<bits/stdc++.h>
using namespace std;
#define MOD 1000003
#define LL long long
LL jc[MOD+];
int read()
{
int s=,fh=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')fh=-;ch=getchar();}
while(ch>=''&&ch<=''){s=s*+(ch-'');ch=getchar();}
return s*fh;
}
LL ksm(LL bb,LL pp,LL kk)
{
LL s=1LL;
while(pp>0LL)
{
if(pp%2LL!=0LL)s=(s*bb)%kk;
pp/=2LL;
bb=(bb*bb)%kk;
}
return s;
}
LL C(int n,int m,int P)
{
if(m>n)return 0LL;
if(n-m<m)m=n-m;
return (jc[n]*ksm((jc[m]*jc[n-m])%P,P-,P))%P;
}
LL Lucas(int n,int m,int P)
{
if(m==)return 1LL;
return (C(n%P,m%P,P)*Lucas(n/P,m/P,P))%P;
}
void cljc()
{
jc[]=1LL;
for(int i=;i<=MOD;i++)jc[i]=(jc[i-]*i)%MOD;
}
int main()
{
int k,l,r,n,T;
LL ans;
cljc();
T=read();
while(T--)
{
n=read();l=read();r=read();
k=r-l;
ans=Lucas(k+n+,k+,MOD);
printf("%lld\n",((ans-1LL)%MOD+MOD)%MOD);
}
fclose(stdin);
fclose(stdout);
return ;
}
Bzoj 4403: 序列统计 Lucas定理,组合数学,数论的更多相关文章
- bzoj 4403 序列统计 卢卡斯定理
4403:序列统计 Time Limit: 3 Sec Memory Limit: 128 MB Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调 ...
- BZOJ 4403: 序列统计 数学 lucas
4403: 序列统计 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4403 Description 给定三个正整数N.L和R,统计长度在 ...
- 【BZOJ4403】序列统计 Lucas定理
[BZOJ4403]序列统计 Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第 ...
- bzoj 4403: 序列统计【lucas+组合数学】
首先,给一个单调不降序列的第i位+i,这样就变成了单调上升序列,设原来数据范围是(l,r),改过之后变成了(l+1,r+n) 在m个数里选长为n的一个单调上升序列的方案数为\( C_m^n \),也就 ...
- BZOJ 4403 序列统计(Lucas)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4403 [题目大意] 给定三个正整数N.L和R,统计长度在1到N之间, 元素大小都在L到 ...
- [BZOJ 4403]序列统计
Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第一行包含一个整数T,表示数据组 ...
- bzoj 4403 序列统计——转化成组合数的思路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4403 先说说自己的想法吧. 设f[ i ][ j ]表示当前在倒数第 i 个位置,当前和后面 ...
- 【BZOJ 4403】 4403: 序列统计 (卢卡斯定理)
4403: 序列统计 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 653 Solved: 320 Description 给定三个正整数N.L和R, ...
- BZOJ4403 序列统计—Lucas你好
绝对是全网写的最详细的一篇题解 题目:序列统计 代码难度:简单 思维难度:提高+-省选 讲下题面:给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案 ...
随机推荐
- notepad++ 开启/关闭 记住最后打开的文件
开启记住最后打开的文件 1) 6.3以前版本如下设置: 设置-->首选项-->其他 把左下角的 "记住最后打开文件" 勾选. 2) 6.3以后版本如下设置: 设置--& ...
- ppshu
全部书籍已经下载完毕! http://3cvpkfx4gdnkcduj.onion/ https://3cvpkfx4gdnkcduj.onion.cab/ https://3cvpkfx4gdnkc ...
- [Ruby on Rails系列]1、开发环境准备:Vmware和Linux的安装
Ruby on Rails是一个采用Ruby语言的遵循MVC模式的Web开发框架.使用RoR会得到更加快速爽快的Web开发体验.相比于Java EE,该框架使Web开发的速度和效率变得更加轻快和敏捷. ...
- struts2总结六: Struts2的拦截器
一.Struts2的系统结构图
- Spring MVC 与 web开发
转载:http://coderbee.net/index.php/java/20140719/959 项目组用了 Spring MVC 进行开发,觉得对里面的使用方式不是很满意,就想,如果是我来搭建开 ...
- 数据库 MySQL Jdbc JDBC的六个固定步骤
*0 案例: a)在JavaScript中使用正则表达式,在JS中正则表达式的定界符是:// var regexp = /^[0-9]+$/; if(regexp.test(nu ...
- Android 签名(3)已签名的apk中的文件
已经签名 apk包中签名相关的文件在meta_INF目录下 CERT.SF:生成每个文件相对的密钥 MANIFEST.MF:数字签名信息 xxx.SF:这是JAR文件的签名文件,占位符xxx标识了签名 ...
- 如何完全卸载VS2010
1.首先用360卸载,当卸载完成后,提示有残余的话,就强力清除 2,接着,下载IobitUninstaller工具 3.按照下面进行卸载 1.Microsoft .NET Framework 4 框架 ...
- Win7安装错误提示与解决办法大全
Windows7安装时有许多提示错误,许多朋友不知道如何解决,那就看看这篇软媒整理的文章吧,或许有些帮助.本文出现的问题同样应用于其他版本的Windows 7,甚至是Vista,收藏一下本文,或者某天 ...
- Python图
从一位前辈的博客看到了一张图,先转过来,稍后再细看