A Boring Question

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 487    Accepted Submission(s):
271

Problem Description
There are an equation.
∑0≤k1,k2,⋯km≤n∏1⩽j<m(kj+1kj)%1000000007=? 
We define that (kj+1kj)=kj+1!kj!(kj+1−kj)! . And (kj+1kj)=0 while kj+1<kj .
You have to get the answer for each n and m that given to you.
For example,if n=1 ,m=3 ,
When k1=0,k2=0,k3=0,(k2k1)(k3k2)=1 ;
Whenk1=0,k2=1,k3=0,(k2k1)(k3k2)=0 ;
Whenk1=1,k2=0,k3=0,(k2k1)(k3k2)=0 ;
Whenk1=1,k2=1,k3=0,(k2k1)(k3k2)=0 ;
Whenk1=0,k2=0,k3=1,(k2k1)(k3k2)=1 ;
Whenk1=0,k2=1,k3=1,(k2k1)(k3k2)=1 ;
Whenk1=1,k2=0,k3=1,(k2k1)(k3k2)=0 ;
Whenk1=1,k2=1,k3=1,(k2k1)(k3k2)=1 .
So the answer is 4.
 
Input
The first line of the input contains the only integer
T ,(1≤T≤10000) 
Then T lines follow,the i-th line contains two integers n ,m ,(0≤n≤109,2≤m≤109) 
 
Output
For each n and m ,output the answer in a single line.
 
Sample Input
2
1 2
2 3
 
Sample Output
3
13
 
Author
UESTC
 
题意:根据题目中规定的结算方式,给定n,m的值,求结果。
 
打表找规律,比赛的时候找到了还是没写出来。。因为有除法还有取模,所以要用到逆元,第一次使用逆元,找了一个模板。
 
附上代码:
 
 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define ll long long
#define mod 1000000007
using namespace std; ll mat(ll a,ll b)///a^b,结果对mod取膜,b的值很大的时候
{
ll c=;
if(b==) return a%mod; ///当b为1时,只剩下最后一个a
else if(b&) ///b为奇数
return mat(a,b-)*a%mod; ///把单独的a拿出来
else ///b为偶数
return mat(a*a%mod,b/)%mod; ///直接相乘,系数除以2
} ll extend_gcd(ll a,ll b,ll &x,ll &y)
{
if(a==&&b==) return -;//无最大公约数
if(b==){x=;y=;return a;}
ll d=extend_gcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
//*********求逆元素*******************
//ax = 1(mod n)
ll mod_reverse(ll a,ll n)
{
ll x,y;
ll d=extend_gcd(a,n,x,y);
if(d==) return (x%n+n)%n;
else return -;
} ll c(ll n,ll m)
{
ll i,j,t1,t2,ans;
t1=((mat(m,n+)-)%mod+mod)%mod;
t2=(m-)%mod;
return t1*mod_reverse(t2,mod)%mod;
} int main()
{
int T,n,m;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
ll ans=c(n,m);
printf("%I64d\n",ans);
}
return ;
}

最新文章

  1. 2000条你应知的WPF小姿势 基础篇&lt;34-39 Unhandled Exceptions和Resource&gt;
  2. 解决 mysql 启动报错--发现系统错误2,系统找不到指定的文件
  3. redhat6修改主机名
  4. linux的nohup disown setsid screen
  5. ipython与python的区别
  6. NSBundle 类
  7. YUI Array 之each| forEach(遍历)
  8. spark安装mysql与hive
  9. float 覆盖元素的问题
  10. Html:upload
  11. C++string类总结
  12. 子库存-OU-库存组织-关系
  13. ndk编译faac生成库
  14. linux服务器共享给windows的client打印机配置
  15. C#C/S框架演示 (MES系统)
  16. ImportError: DLL load failed: 找不到指定的模块。
  17. Mudo C++网络库第八章学习笔记
  18. Jenkins三.1 配置maven
  19. ASP.NET Core ResponseCaching:基于 VaryByHeader 定制缓存 Key
  20. phpstorm 2018.1.2的安装和破解

热门文章

  1. VUE打包好的文件部署让beego实现静态文件访问,如何用根目录来访问静态文件?
  2. CentOS7配置中文支持与部署GitLab服务器
  3. Leetcode36.Valid Sudoku有效的数独
  4. web前端开发必备技术
  5. LUOGU 2593 : [Zjoi2006] 超级麻将
  6. CSS-画三角
  7. 组合数取模(lucas定理+CRT合并)(AC)
  8. Android——兼容性
  9. Leetcode62.Unique Paths不同路径
  10. Android手机控制电脑撸出HelloWorld