博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 多校
阅读量:6314 次
发布时间:2019-06-22

本文共 1631 字,大约阅读时间需要 5 分钟。

Problem B. Harvest of Apples

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 1006    Accepted Submission(s): 381

Problem Description
There are 
n apples on a tree, numbered from 1 to n.
Count the number of ways to pick at most m apples.
 

 

Input
The first line of the input contains an integer 
T (1T105) denoting the number of test cases.
Each test case consists of one line with two integers n,m (1mn105).
 

 

Output
For each test case, print an integer representing the number of ways modulo 
109+7.
 

 

Sample Input
2 5 2 1000 500
 

 

Sample Output
16 924129523
 

 题意

t次询问,求C(n,0)+C(n,1)+...C(n,m)

思路

通过暴力打表 100000x100000 这样会超时 ,因为C(n,m)=C(n-1,m-1)+C(n-1,m),所以sum[n][m]=2*sum[n-1][m]-C(n-1,m)

这样就可以通过某个点求出其他点的值,用分块,每200x200的矩阵压成一个点,这样就可以快速查询。

#include
#include
#include
using namespace std;const int mod=1e9+7;typedef long long ll;int len=200;ll A[100005],p[100005],q[100005];ll dp[505][505];ll qpow(ll a,ll b,ll c){ ll ans=1; while(b) { if(b&1) ans=ans*a%c; a=a*a%c; b>>=1; } return ans;}ll C(int n,int m){ return (A[n]*p[m])%mod*p[n-m]%mod;}void init(){ ll sum; for(int i=0;i<=500;i++) { int m=i*len; sum=0; for(int j=0;j<=m;j++) { sum+=C(m,j); sum%=mod; if(j%len==0) { dp[i][j/len]=sum; } } }}ll get(int n,int m){ int x,y; x=n/len*len; y=m/len*len; ll ans; ans=dp[n/len][m/len]; for(int i=x;i

 

转载于:https://www.cnblogs.com/liweiggg/p/9405329.html

你可能感兴趣的文章
linux下的权限问题
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
Spring Boot 整合redis
查看>>
CSS hover改变背景图片过渡动画生硬
查看>>
JDBC(三)数据库连接和数据增删改查
查看>>
淘宝应对"双11"的技术架构分析
查看>>
订单的子单表格设置颜色
查看>>
Office365 Exchange Hybrid 番外篇 ADFS后端SQL群集(一)
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
lvs fullnat部署手册(三)rs内核加载toa篇
查看>>
C++策略模式
查看>>
我的友情链接
查看>>
oracle表分区详解
查看>>
网络编程中常见结构体
查看>>
SSL/TLS原理详解
查看>>
Docker 自定义SSH服务镜像
查看>>
JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改
查看>>
configure: error: in `/root/httpd-2.2.11/srclib/apr': c
查看>>
CentOS7搭建Kubernetes-dashboard管理服务
查看>>
buildroot下查找外部编译器通过ext-toolchain-wrapper调用的参数
查看>>