hdu-6333-莫队
Problem B. Harvest of Apples
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 2970 Accepted Submission(s): 1153
Count the number of ways to pick at most m apples.
Each test case consists of one line with two integers n,m (1≤m≤n≤105).
5 2
1000 500
924129523
- #include<bits/stdc++.h>
- using namespace std;
- #define LL long long
- #define eps 1e-6
- #define mod 1000000007
- //LL mod=1e9+7;
- const int maxn=+;
- LL len,p[maxn]={,},inv[maxn]={,},p_inv[maxn]={,},ans[maxn];
- int t;
- struct Query{
- LL n,m,blo;
- int id;
- bool operator<(const Query&C)const{
- if(blo==C.blo) return n<C.n;
- return blo<C.blo;
- }
- }q[maxn];
- LL cal(LL a,LL b)
- {
- if(b>a)
- return ;
- return p[a]*p_inv[b]%mod*p_inv[a-b]%mod;
- }
- int main(){
- int n,m,i,j,k;
- len=sqrt(maxn);
- for(i=;i<=;++i){
- p[i]=p[i-]*i%mod;
- inv[i]=(mod-mod/i)*inv[mod%i]%mod;
- p_inv[i]=p_inv[i-]*inv[i]%mod;
- }
- scanf("%d",&t);
- for(i=;i<=t;++i){
- scanf("%lld %lld",&q[i].n,&q[i].m);
- q[i].id=i;
- q[i].blo=q[i].m/len;
- }
- sort(q+,q++t);
- int L=,R=;
- LL res=;
- for(i=;i<=t;++i){
- while(L<q[i].m){
- res=(res+cal(R,++L))%mod;
- }
- while(L>q[i].m){
- res=(res+mod-cal(R,L--))%mod;
- }
- while(R<q[i].n){
- res=(res*+mod-cal(R++,L))%mod;
- }
- while(R>q[i].n){
- res=(res+cal(--R,L))%mod*inv[]%mod;
- }
- ans[q[i].id]=res;
- }
- for(i=;i<=t;++i)printf("%lld\n",ans[i]);
- return ;
- }
hdu-6333-莫队的更多相关文章
- Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元
题意大致是有n个苹果,问你最多拿走m个苹果有多少种拿法.题目非常简单,就是求C(n,0)+...+C(n,m)的组合数的和,但是询问足足有1e5个,然后n,m都是1e5的范围,直接暴力的话肯定时间炸到 ...
- HDU 6333 莫队+组合数
Problem B. Harvest of Apples Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K ...
- Hdu 5213-Lucky 莫队,容斥原理,分块
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5213 Lucky Time Limit: 6000/3000 MS (Java/Others) Me ...
- HDU 4358 莫队算法+dfs序+离散化
Boring counting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 98304/98304 K (Java/Others)T ...
- HDU 4638 (莫队)
题目链接:Problem - 4638 做了两天莫队和分块,留个模板吧. 当插入r的时候,设arr[r]代表r的位置的数字,判断vis[arr[r-1]]和vis[arr[r+1]]是否访问过,如果两 ...
- HDU 4638 莫队算法
Group Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 5145(莫队算法+逆元)
NPY and girls Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 6534 莫队+ 树状数组
题意及思路:https://blog.csdn.net/tianyizhicheng/article/details/90369491 代码: #include <bits/stdc++.h&g ...
- HDU 5145 NPY and girls (莫队分块离线)
题目地址:HDU 5145 莫队真的好奇妙.. 这种复杂度竟然仅仅有n*sqrt(n)... 裸的莫队分块,先离线.然后按左端点分块,按块数作为第一关键字排序.然后按r值作为第二关键字进行排序. 都是 ...
- 【魔改】莫队算法+组合数公式 杭电多校赛4 Problem B. Harvest of Apples
http://acm.hdu.edu.cn/showproblem.php?pid=6333 莫队算法是一个离线区间分块瞎搞算法,只要满足:1.离线 2.可以O(1)从区间(L,R)更新到(L±1, ...
随机推荐
- Learning to Track at 100 FPS with Deep Regression Networks ECCV 2016 论文笔记
Learning to Track at 100 FPS with Deep Regression Networks ECCV 2016 论文笔记 工程网页:http://davheld.git ...
- (zhuan) Paper Collection of Multi-Agent Reinforcement Learning (MARL)
this blog from: https://github.com/LantaoYu/MARL-Papers Paper Collection of Multi-Agent Reinforcemen ...
- 【ASP.NET】 MVC下拉框联动
这个case主要是我在做项目的时候遇到一个需要根据input控件输入的内容,动态填充dropdown list中的内容, 实现二者联动的需求.在搜索了一些资源后,这篇博客解决了我的问题,所以记录并转载 ...
- ETCD应用
etcd:从应用场景到实现原理的全方位解读 ETCD:A highly-available key value store for shared configuration and service d ...
- 提高R语言速度--转载
1. 参考<R语言编程艺术>(Norman Matloff) chapter 14 & chapter 15 2. 方法 (1)向量化 与非向量化-循环做个对比: ...
- 简单实现RN调用原生方法(IOS)
在React Native中,一个“原生模块”就是一个实现了“RCTBridgeModule”协议的Objective-C类(个人理解RCTBridgeModule就是react与native之间的桥 ...
- git项目,VSCode显示不同颜色块的含义
一. 概念 代码里的左侧颜色标识: 红色,未加入版本控制; (刚clone到本地) 绿色,已经加入版本控制暂未提交; (新增部分) 蓝色,加入版本控制,已提交,有改动: (修改部分) 白色,加入版本控 ...
- android:ems="10"是什么意思
android:ems = " 设置TextView或者Edittext的宽度为10个字符的宽度.当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示. xml中 andr ...
- VC静态调用DLL(lib)
1. #pragma comment(lib, "libxml2.lib")#pragma comment(lib, "iconv.lib")#pragma c ...
- EditPlus查找替换
换行符\n,记得选择正则表达式 1]正则表达式应用——替换指定内容到行尾解决:① 在替换对话框,查找内容里输入“abc.*”② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮其中,符号的含义如 ...