一本通1656:Combination

1656:Combination

时间限制: 1000 ms         内存限制: 524288 KB
提交数: 89     通过数: 49

【题目描述】

原题来自:BZOJ 2982

LMZ 有 n


个不同的基友,他每天晚上要选 m 个进行 [河蟹],而且要求每天晚上的选择都不一样。那么 LMZ 能够持续多少个这样的夜晚呢?当然,LMZ 的一年有 10007 天,所以他想知道答案 mod10007

的值。

【输入】

第一行一个整数 t


,表示有 t

组数据;

接下来 t


行每行两个整数 n,m

,如题意。

【输出】

t


行,每行一个数,为 (nm)mod10007

的答案。

【输入样例】

4
5 1
5 2
7 3
4 2

【输出样例】

5
10
35
6

【提示】

数据范围与提示:

对于全部数据,1≤t≤200,1≤m≤n≤2×108

这道题没有什么含金量但是题目本身很神♂奇

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=;
inline int read()
{
int x=,f=;
char ch=getchar();
while(ch<''||ch>''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
inline ll power(ll a,ll b)
{
ll res=;
while(b)
{
if(b&) res=res*a%mod; a=a*a%mod; b>>=;
}
return res;
}
inline ll C(ll n,ll m)
{
ll n0=,m0=;
for(ll i=n-m+;i<=n;i++) n0=n0*i%mod;
for(ll i=;i<=m;i++) m0=m0*i%mod;
return n0*power(m0,mod-)%mod;
}
inline ll Lucas(ll n,ll m)
{
if(m==) return ;
return C(n%mod,m%mod)*Lucas(n/mod,m/mod)%mod;
}
int main()
{
int t;
t=read();
ll n,m;
while(t--)
{
n=(ll)read();
m=(ll)read();
printf("%lld\n",Lucas(n,m));
}
return ;
}

最新文章

  1. 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
  2. 第一个PyQt程序
  3. JS之toString方法
  4. 获取在线人数 CNZZ 和 51.la
  5. ASP.NET导出excel表方法汇总
  6. POJ 3074 Sudoku (Dacing Links)
  7. oracle7
  8. PureMVC(JS版)源码解析(十):Controller类
  9. static和const关键字的作用
  10. 第二部分----CSS的基础语法
  11. Problem B: 开个餐馆算算账
  12. jQuery学习小结
  13. To B Vs To C
  14. mysql 数据库导入导出方法总结
  15. EntityFramework扩展之第三方类库
  16. maven的安装和配置
  17. redis复习
  18. linux常用命令总结-updating
  19. office 2007,SQL Server 2008,VS2010安装步骤
  20. 【BZOJ】1671: [Usaco2005 Dec]Knights of Ni 骑士(bfs)

热门文章

  1. 虚拟机Vmware使用记录
  2. CAS单点登录相关配置
  3. Go 结构体的使用
  4. stm32 ds18b20 温度传感器
  5. leetcode-62. Unique Paths &#183; DP + vector
  6. Mysql中的锁机制-转载
  7. python网络爬虫第三弹(&lt;爬取get请求的页面数据&gt;)
  8. Jupyter notebook部署引导
  9. asp.net的web程序适用后台线程做异步任务
  10. ThreadLocal 是什么?(未完成)有哪些使用场景?(未完成)