瞬间移动

题目连接:

http://acm.hdu.edu.cn/showproblem.php?pid=5698

Description

有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种方案,答案对1000000007取模。

Input

多组测试数据。

两个整数n,m(2≤n,m≤100000)

Output

一个整数表示答案

Sample Input

4 5

Sample Output

10

Hint

题意

题解:

数学题先打表,写个智障dp,然后看一看

发现,哦 好像是个杨辉三角

哦 好像答案就是C(n+m-4,n-2)啊

交一发,诶 过了

代码

#include<math.h>
#include<cstring>
#include<algorithm>
#include<stdio.h>
using namespace std;
const int maxn = 1e6+7;
const int mod = 1e9+7;
long long fac[maxn];
long long qpow(long long a,long long b)
{
long long ans=1;a%=mod;
for(long long i=b;i;i>>=1,a=a*a%mod)
if(i&1)ans=ans*a%mod;
return ans;
}
long long C(long long n,long long m)
{
if(m>n||m<0)return 0;
long long s1=fac[n],s2=fac[n-m]*fac[m]%mod;
return s1*qpow(s2,mod-2)%mod;
}
int n,m;
int main()
{
fac[0]=1;
for(int i=1;i<maxn;i++)
fac[i]=fac[i-1]*i%mod;
while(scanf("%d%d",&n,&m)!=EOF)
printf("%lld\n",C(n+m-4,n-2));
}

最新文章

  1. linux中kvm的安装及快照管理
  2. 判断手机端用户打开页面时是android还是ios,并将判断结果通过ajax返回给url接口,传递回去
  3. Tech Websites
  4. windows server 2003(64位)上利用iis6部署32位应用
  5. dalvik
  6. 证书 pki
  7. U盘安装Win7 64位
  8. 教你50招提升ASP.NET性能(十六):把问题仍给硬件而不是开发人员
  9. 深入理解linux网络技术内幕读书笔记(十)--帧的接收
  10. Myeclipse自动生成javabean的get和set方法
  11. ubuntu 12.04下安装和配置kohana 3.3.3 的方法
  12. 14.18 InnoDB Backup and Recovery 备份和恢复:
  13. Linux下经常使用的shell命令记录
  14. 树莓派学习笔记——USB wifi配置指南
  15. obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用
  16. 基于WebGL架构的3D可视化平台ThingJS-搭建设备管理系统
  17. Linux学习笔记 软链接和硬链接
  18. Python 浅谈编程规范和软件开发目录规范的重要性
  19. 基于struts研究传值问题
  20. MySQL补充

热门文章

  1. linux bash shell之declare
  2. Android页面之间进行数据回传
  3. sqlserver中一些常用的函数总结
  4. 编译环境搭建:Makefile
  5. Kubernetes监控:部署Heapster、InfluxDB和Grafana
  6. 8VC Venture Cup 2016 - Final Round (Div. 1 Edition) E - Preorder Test 树形dp
  7. Ionic Js十六:滚动条
  8. Ionic入门七:ionic tab(选项卡)
  9. MongoDB入门教程二[MongoDB Shell 简介与使用]
  10. 华三IRF的配置