题意:

  T次询问,每次给出n,m。求sigma(k:0->m)C(n, k)。

题解:

  用离线莫队来做。

  令S(n,m) = sigma(k:0->m)C(n, k)。

  S(n+1, m) = 2S(n, m) - C(n, m)   S(n-1, m) = (S(n, m) + C(n-1, m)) / 2

  S(n, m+1) = S(n, m) + C(n, m+1)   S(n, m-1) = S(n, m) - C(n, m)

#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+;
const int N = 1e5+;
int t;
int blk;
int blg[N];
int fac[N], inv[N], tmp[N];
int l, r, now;
int ans[N];
struct ask {
int l, r, id;
bool operator < (const ask &a) {
return blg[l] == blg[a.l] ? r < a.r : l < a.l;
}
}q[N];
int C(int n, int m) {
int res = 1ll*fac[n]*inv[m]%mod;
res = 1ll*res*inv[n-m]%mod;
return res;
}
void update(int k, int t) {
if(t == ) {
if(~k) now = (2ll*now-C(l, r)+mod)%mod;
else now = 1ll*(now+C(l-, r))*tmp[]%mod;
}
else {
if(~k) now = (now+C(l, r))%mod;
else now = (now-C(l, r)+mod)%mod;
}
}
int main() {
fac[] = fac[] = tmp[] = inv[] = inv[] = ;
for(int i = ; i < N; i++) {
fac[i] = 1ll*fac[i-]*i%mod;
tmp[i] = 1ll*(mod-mod/i)*tmp[mod%i]%mod;
inv[i] = 1ll*inv[i-]*tmp[i]%mod;
}
scanf("%d", &t);
int up = ;
for(int i = ; i <= t; i++) {
scanf("%d%d", &q[i].l, &q[i].r);
up = max(up, q[i].r);
q[i].id = i;
}
blk = sqrt(t);
for(int i = ; i <= up; i++) blg[i] = (i-)/blk;
sort(q+, q+t+);
now = ;
l = , r = ;
for(int i = ; i <= t; i++) {
while(r > q[i].r) update(-, ), r--;
while(l < q[i].l) update(, ), l++;
while(l > q[i].l) update(-, ), l--;
while(r < q[i].r) r++, update(, );
ans[q[i].id] = now;
}
for(int i = ; i <= t; i++) printf("%d\n", ans[i]);
}

  

最新文章

  1. 特殊文件: /dev/null和/dev/tty
  2. Java 集合类详解
  3. 用excel绘制基因芯片热力图
  4. Linux Linux程序练习十一(网络编程大文件发送UDP版)
  5. [转]linux之partprobe命令
  6. Visual C++内存泄露检测—VLD工具使用说明[转]
  7. 2016 系统设计第一期 (档案一)jQuery radio 取值赋值
  8. 入门视频采集与处理(BT656简介)
  9. [主席树]HDOJ4417 Super Mario
  10. 【示例代码】HTML+JS 画图板源码分享
  11. Windows下一个JSP环境配置
  12. 《JAVASCRIPT高级程序设计》Ajax与Comet
  13. 获取JVM的dump文件
  14. html之改变图片透明度而不改变文字的透明度--两种方法实现
  15. vue-cli的webpack模版项目配置解析-build/dev-server.js
  16. Python并发编程之多线程使用
  17. Python——pickle模块(永久存储)
  18. 初探OpenCL之Mac OS上的hello world示例
  19. Dijskstra算法
  20. web开发——入门篇(上)

热门文章

  1. linux (rm指令) 及误删除解决
  2. 关联分析FPGrowth算法在JavaWeb项目中的应用
  3. Qt-网络与通信-获取本机网络信息
  4. Monkey用真机做测试的步骤
  5. 前端开发工程师 - 05.产品前端架构 - 协作流程 &amp; 接口设计 &amp; 版本管理 &amp; 技术选型 &amp;开发实践
  6. Anyproxy抓包工具
  7. 【xmlHttp_Class 远程访问类】使用说明
  8. 【checkbox-group、checkbox】 多项选择器组件说明
  9. linux学习总结----redis总结
  10. 数数字 (Digit Counting,ACM/ICPC Dannang 2007 ,UVa1225)