HDU6333 莫队+组合数
题目大意:
给定n m
在n个数中最多选择m个的所有方案
- #include <bits/stdc++.h>
- using namespace std;
- #define INF 0x3f3f3f3f
- #define LL long long
- const int mod=1e9+;
- const int N=1e5+;
- /********组合数模板*********/
- LL pow_mod(LL a, LL b) {
- LL res = 1LL; a %= mod;
- while(b){
- if(b & ) res = res * a % mod;
- a = a * a % mod;
- b >>= ;
- } return res;
- }
- LL inv(LL a) { return pow_mod(a, mod-); }
- LL F[N], Finv[N];//F是阶乘,Finv是逆元的阶乘
- void init() {
- F[] = Finv[] = 1LL;
- for(int i = ; i < N; i ++){
- F[i] = F[i-] * 1LL * (LL)i % mod;
- Finv[i] = Finv[i-] * 1LL * inv(i) % mod;
- }
- } // O(n)预处理
- LL C(LL n, LL m) {
- if(m < || m > n) return ;
- return F[n] * 1LL * Finv[n - m] % mod * Finv[m] % mod;
- } // O(1)获得组合数C(n,m)
- /**************************/
- LL res[N];
- /********莫队*********/
- int len;
- struct Q {
- LL n,m;
- int block, id;
- bool operator <(const Q& q)const {
- if(block==q.block) return n<q.n;
- return block<q.block;
- }
- }q[N];
- void Mo(int t) {
- LL L=, R=, ans=1LL;
- for(int i=;i<t;i++) {
- LL l=q[i].n, r=q[i].m;
- while(L>l) ans=((ans+C(L-1LL,R))%mod*Finv[])%mod, L--;
- while(L<l) ans=(*ans%mod-C(L,R)+mod)%mod, L++;
- while(R<r) ans=(ans+C(L,R+))%mod, R++;
- while(R>r) ans=(ans-C(L,R)+mod)%mod, R--;
- res[q[i].id]=ans;
- }
- }
- /**************************/
- int main()
- {
- init(); len=sqrt(N);
- int t; scanf("%d",&t);
- for(int i=;i<t;i++) {
- scanf("%lld%lld",&q[i].n,&q[i].m);
- q[i].block=q[i].m/len; q[i].id=i;
- }
- sort(q,q+t);
- Mo( t);
- for(int i=;i<t;i++)
- printf("%lld\n",res[i]);
- return ;
- }
HDU6333 莫队+组合数的更多相关文章
- HDU 6333 莫队+组合数
Problem B. Harvest of Apples Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K ...
- Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元
题意大致是有n个苹果,问你最多拿走m个苹果有多少种拿法.题目非常简单,就是求C(n,0)+...+C(n,m)的组合数的和,但是询问足足有1e5个,然后n,m都是1e5的范围,直接暴力的话肯定时间炸到 ...
- HDU6333 莫队+组合数学
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6333 题意: T次询问,每次询问n个苹果中最多拿m个苹果的方法数 题解: 因为T为1e5,所以直接做时间 ...
- 联赛模拟测试12 C. sum 莫队+组合数
题目描述 分析 \(80\) 分的暴力都打出来了还是没有想到莫队 首先对于 \(s[n][m]\) 我们可以很快地由它推到 \(s[n][m+1]\) 和 \(s[n][m-1]\) 即 \(s[n] ...
- hdu6333 Problem B. Harvest of Apples(组合数+莫队)
hdu6333 Problem B. Harvest of Apples 题目传送门 题意: 求(0,n)~(m,n)组合数之和 题解: C(n,m)=C(n-1,m-1)+C(n-1,m) 设 ...
- HDU-6333 Problem B. Harvest of Apples 莫队
HDU-6333 题意: 有n个不同的苹果,你最多可以拿m个,问有多少种取法,多组数据,组数和n,m都是1e5,所以打表也打不了. 思路: 这道题要用到组合数的性质,记S(n,m)为从n中最多取m个的 ...
- Problem B. Harvest of Apples(杭电2018年多校+组合数+逆元+莫队)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6333 题目: 题意:求C(n,0)+C(n,1)+……+C(n,m)的值. 思路:由于t和n数值范围太 ...
- 【魔改】莫队算法+组合数公式 杭电多校赛4 Problem B. Harvest of Apples
http://acm.hdu.edu.cn/showproblem.php?pid=6333 莫队算法是一个离线区间分块瞎搞算法,只要满足:1.离线 2.可以O(1)从区间(L,R)更新到(L±1, ...
- 2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)
传送门 好题. 考察了莫队和组合数学两个知识板块. 首先需要推出单次已知n,mn,mn,m的答案的式子. 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数. 显然iii之后的数都是单 ...
随机推荐
- 网页开发中调用iframe中的函数或者是dom元素
iframe中的代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- =面试题:java面试基本方向 背1 有用 项目二技术学完再看
一.Java基础 1. 集合框架A)集合中泛型优点? 将运行期的ClaasCastException 转到编译期异常. 泛型还提供通配符 1)HashMap---允许一个键为null,允许多个值为n ...
- Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新
Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/7887449 ...
- 简单的Cookie记录浏览记录案例
books.jsp 界面 代码 <%@ page contentType="text/html;charset=UTF-8" language="java" ...
- [存储过程]中的事务(rollback)回滚
在编写SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... del ...
- iPhone的home键进果汁了,按起来粘粘的感觉
解决办法是按住home键转动一下,再用棉签蘸点水或者酒精都行(注意:水不要太多,不能让水渗进去),用棉签按压home 键多转几圈就好了.
- 第18章-使用WebSocket和STOMP实现消息功能
Spring 4.0为WebSocket通信提供了支持,包括: 发送和接收消息的低层级API: 发送和接收消息的高级API: 用来发送消息的模板: 支持SockJS,用来解决浏览器端.服务器以及代理不 ...
- 编写高质量代码改善C#程序的157个建议——建议33:避免在泛型类型中声明静态成员
建议33:避免在泛型类型中声明静态成员 在上一建议中,已经理解了应该将MyList<int>和MyList<string>视作两个完全不同的类型,所以,不应该将MyList&l ...
- MySQL性能调优与架构设计——第4章 MySQL安全管理
第4章 MySQL安全管理 前言 对于任何一个企业来说,其数据库系统中所保存数据的安全性无疑是非常重要的,尤其是公司的有些商业数据,可能数据就是公司的根本,失去了数据的安全性,可能就是失去了公司的一切 ...
- JSP+JDBC实现在可视化页面中插入数据到SQL数据库
原创 本篇博客创建一个如下图所示的JSP页面,将用户填入的数据插入到对应的数据库中. JSP页面代码: <%@ page language="java" contentTyp ...