HDU - 6333 Harvest of Apples
2024-08-26 08:02:38
题意:
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]);
}
最新文章
- 特殊文件: /dev/null和/dev/tty
- Java 集合类详解
- 用excel绘制基因芯片热力图
- Linux Linux程序练习十一(网络编程大文件发送UDP版)
- [转]linux之partprobe命令
- Visual C++内存泄露检测—VLD工具使用说明[转]
- 2016 系统设计第一期 (档案一)jQuery radio 取值赋值
- 入门视频采集与处理(BT656简介)
- [主席树]HDOJ4417 Super Mario
- 【示例代码】HTML+JS 画图板源码分享
- Windows下一个JSP环境配置
- 《JAVASCRIPT高级程序设计》Ajax与Comet
- 获取JVM的dump文件
- html之改变图片透明度而不改变文字的透明度--两种方法实现
- vue-cli的webpack模版项目配置解析-build/dev-server.js
- Python并发编程之多线程使用
- Python——pickle模块(永久存储)
- 初探OpenCL之Mac OS上的hello world示例
- Dijskstra算法
- web开发——入门篇(上)
热门文章
- linux (rm指令) 及误删除解决
- 关联分析FPGrowth算法在JavaWeb项目中的应用
- Qt-网络与通信-获取本机网络信息
- Monkey用真机做测试的步骤
- 前端开发工程师 - 05.产品前端架构 - 协作流程 &; 接口设计 &; 版本管理 &; 技术选型 &;开发实践
- Anyproxy抓包工具
- 【xmlHttp_Class 远程访问类】使用说明
- 【checkbox-group、checkbox】 多项选择器组件说明
- linux学习总结----redis总结
- 数数字 (Digit Counting,ACM/ICPC Dannang 2007 ,UVa1225)