题目描述

分析

\(80\) 分的暴力都打出来了还是没有想到莫队

首先对于 \(s[n][m]\) 我们可以很快地由它推到 \(s[n][m+1]\) 和 \(s[n][m-1]\)

即 \(s[n][m+1]=s[n][m]+C_n^{m+1}\)

\(s[n][m-1]=s[n][m]-C_n^m\)

然后我们考虑怎么由 \(s[n][m]\) 推到 \(s[n-1][m]\) 和 \(s[n+1][m]\)

其实画出杨辉三角观察性质即可

摘自 \({\color{black}{M}}{\color{red}{idoria7}}\)的博客

\(\Huge \%\%\%谢队\)



这样,我们可以 \(O(1)\) 转移,然后把 \(m\) 看成 \(l\) ,把 \(n\) 看成 \(r\),套一个莫队的板子

代码

#include<cstdio>
#include<algorithm>
#include<cmath>
#define rg register
const int maxn=1e6+5;
const int mod=1e9+7;
inline int read(){
rg int x=0,fh=1;
rg char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') fh=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*fh;
}
int haha,q,n,m,ny[maxn],jc[maxn],jcc[maxn];
int getC(int nn,int mm){
return 1LL*jc[nn]*jcc[mm]%mod*jcc[nn-mm]%mod;
}
int blo,shuyu[maxn],ans[maxn];
struct asd{
int l,r,id;
asd(){}
asd(int aa,int bb,int cc){
l=aa,r=bb,id=cc;
}
}b[maxn];
bool cmp(asd aa,asd bb){
if(shuyu[aa.l]==shuyu[bb.l]) return aa.r<bb.r;
return aa.l<bb.l;
}
int main(){
haha=read();
ny[1]=1;
for(rg int i=2;i<maxn;i++){
ny[i]=1LL*(mod-mod/i)*ny[mod%i]%mod;
}
jc[0]=jcc[0]=1;
for(rg int i=1;i<maxn;i++){
jc[i]=1LL*jc[i-1]*i%mod;
jcc[i]=1LL*jcc[i-1]*ny[i]%mod;
}
q=read();
rg int aa,bb,mmax=0;
for(rg int i=1;i<=q;i++){
aa=read(),bb=read();
b[i]=asd(bb,aa,i);
mmax=std::max(mmax,bb);
}
blo=sqrt(mmax);
for(rg int i=1;i<=mmax;i++){
shuyu[i]=(i-1)/blo+1;
}
std::sort(b+1,b+1+q,cmp);
int l=1,r=0,nans=1;
for(rg int i=1;i<=q;i++){
while(l>b[i].l){
nans=(nans-getC(r,l)+mod)%mod;
l--;
}
while(r<b[i].r){
nans=(nans*2%mod-getC(r,l)+mod)%mod;
r++;
}
while(l<b[i].l){
nans=(nans+getC(r,l+1))%mod;
l++;
}
while(r>b[i].r){
nans=1LL*(nans+getC(r-1,l))%mod*ny[2]%mod;
r--;
}
ans[b[i].id]=nans;
}
for(rg int i=1;i<=q;i++){
printf("%d\n",ans[i]);
}
return 0;
}

联赛模拟测试12 C. sum 莫队+组合数的更多相关文章

  1. [CSP-S模拟测试]:飘雪圣域(莫队)

    题目描述 $IcePrincess\text{_}1968$和$IcePrince\text{_}1968$长大了,他们开始协助国王$IceKing\text{_}1968$管理国内事物. $IceP ...

  2. 联赛模拟测试12 B. trade

    题目描述 分析 \(n^2\) 的 \(dp\) 应该比较好想 设 \(f[i][j]\) 为当前在第 \(i\) 天剩余的货物数量为 \(j\) 时的最大收益 那么它可以由 \(f[i-1][j]\ ...

  3. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  6. 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】

    [题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...

  7. [考试反思]0803NOIP模拟测试12:偿还

    嗯,rank5.没什么可评价的,高不算高低不算低. 一套好题,被我浪费了. 离上面280的大神差的有点远. 分机房的绝响就要来临. 越来越感觉自己变菜了,整体的能力水平在下滑. 说的不只是考试,包括平 ...

  8. 20190803 NOIP模拟测试12「斐波那契(fibonacci)· 数颜色 · 分组 」

    164分 rank11/64 这次考的不算太差,但是并没有多大的可能性反超(只比一小部分人高十几分而已),时间分配还是不均,T2两个半小时,T1半个小时,T3-额十几分钟吧 然额付出总是与回报成反比的 ...

  9. Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元

    题意大致是有n个苹果,问你最多拿走m个苹果有多少种拿法.题目非常简单,就是求C(n,0)+...+C(n,m)的组合数的和,但是询问足足有1e5个,然后n,m都是1e5的范围,直接暴力的话肯定时间炸到 ...

随机推荐

  1. layaair 物理

    box2d http://box2d.org Box2D JS https://sourceforge.net/projects/box2d-js/ Box2D一:基础知识 https://www.c ...

  2. idea vue文件设置tab为四个空格

    1.找到vue项目中有个叫.editorconfig的文件,打开可以发现有以下配置项:  2.ctrl+alt+i看看效果(单文件)  3.IDEA中对整个项目进行代码格式化 在项目的左侧树结构中,右 ...

  3. 下拉列表被flash覆盖的解决方法

    做鼎闻有一段时间了,有的banner轮播图的地方用flash替换的时候,就会导致上面的导航条下拉列表被flash覆盖,找了一段时间没有得到有效的解决方法,后来知道关键是flash的这一属性{ &quo ...

  4. shell小技巧(7)shell运行调试

    可以在sh内使用set -x,使用后,会打印每条命令的输出 在shell中设置 set -x 开启 set +x 关闭 也可以在执行脚本时加参数 sh -x *.sh

  5. Linux安装配置Flume

    概述 Apache Flume是一个分布式,可靠且可用的系统,用于高效地收集,汇总和将来自多个不同源的大量日志数据移动到集中式数据存储.Apache Flume的使用不仅限于日志数据聚合.由于数据源是 ...

  6. Zookeeper原生客户端

    1.1.1.1. 客户端基本操作 package cn.enjoy.javaapi; import org.apache.zookeeper.*; import java.io.IOException ...

  7. Maven是什么? Maven的概念+作用+仓库的介绍+常用命令

    Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型.一组标准集合,一个依赖管理系统.和用来运行定义在生命周期阶段中插件目标和逻辑. 核心功能 Maven的核心 ...

  8. Fragment时长统计那些事

    注:本文同步发布于微信公众号:stringwu的互联网杂谈 frament时长统计那些事 页面停留时长作为应用统计的北极星指标里的重要指标之一,统计用户在某个页面的停留时长则变得很重要.而Fragme ...

  9. 【Flutter 实战】菜单(Menu)功能

    老孟导读:今天介绍下Flutter中的菜单功能. PopupMenuButton 使用PopupMenuButton,点击时弹出菜单,用法如下: PopupMenuButton<String&g ...

  10. 2020重新出发,JAVA高级,JVM

    JVM的基本概念 JVM是可运行java代码的假想计算机,包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收,堆和一个存储方法域.JVM是运行在操作系统之上的,它与硬件没有直接的交互. [外链图片 ...