题目

题目背景

LYQ市有一个巨大的水沟网络,可以近似看成一个n*m的矩形网格,网格的每个格点都安装了闸门,我们将从水沟网络右下角的闸门到左上角的闸门的一条路径称为水流。

题目描述

现给定水沟网的长和宽,求该水沟网中所有只包含向左和向上移动的水流数量。

输入输出格式

输入格式:

输入共1行,包含两个整数n和m。

输出格式:

输出一个数字ans,即水流的数量。由于答案可能很大,请输出答案对1000000007取模的结果。

分析:

由题意推理得:

Cn+mn=(n+m)!n!m!C^{n}_{n+m}=\frac{(n+m)!}{n!m!}Cn+mn​=n!m!(n+m)!​

但是我们看一下数据范围:n,m&lt;=1000000n,m&lt;=1000000n,m<=1000000

妈呀,这样咋除呀。

这个时候我们就要引入一个东东:

乘法逆元

说白了一个数的乘法逆元就是他的倒数。。。

其他百度一下就行。

用乘法逆元有啥好处?

ans:可以再弄个费马小定理后用快速幂迅速解决。

那么快速幂是啥?

就比如说39=38∗3=322∗3∗343^9=3^8*3={3^2}^2*3*3^439=38∗3=322∗3∗34等等减少运算次数的,仍可百度。

那么主要思路就出来了:把推出的那个Cn+mn=(n+m)!n!m!C^{n}_{n+m}=\frac{(n+m)!}{n!m!}Cn+mn​=n!m!(n+m)!​的除号下面的部分转换为他的逆元,通过费马小定理写出幂的形式,然后用快速幂迅速求出。

上代码

代码:

#include<cstdio>
const int mod=1000000007;
long long f(long long n) //计算一波阶乘
{long long sum=1;for(long long i=1;i<=n;i++) sum=sum*i%mod;return sum;
}
long long pow(long long n,long long p)//快速幂
{if(!p)//a^0=1 (a!=0) return 1;long long tmp=pow(n,p>>1)%mod;if(p&1) //即判断是否p%2==1 return tmp*tmp%mod*n%mod;else return tmp*tmp%mod;
}
long long inv(long long x)
{ return pow(x,mod-2);//取其逆元,费马小定理
}
int main()
{int n,m;scanf("%d%d",&n,&m);printf("%d",(int)(f(n+m)*inv(f(n))%mod*inv(f(m))%mod));//计算公式: return 0;
}

求关注

转载于:https://www.cnblogs.com/vercont/p/10210090.html

洛谷P2265 路边的水沟相关推荐

  1. 洛谷 P2265 路边的水沟

    洛谷 P2265 路边的水沟 题目 题目背景 LYQ市有一个巨大的水沟网络,可以近似看成一个n*m的矩形网格,网格的每个格点都安装了闸门,我们将从水沟网络右下角的闸门到左上角的闸门的一条路径称为水流. ...

  2. 【数论】【组合数】【快速幂】【乘法逆元】洛谷 P2265 路边的水沟

    从左上角到右下角,共经过n+m个节点,从其中选择n各节点向右(或者m各节点向下),所以答案就是C(n+m,n)或者C(n+m,m),组合数暴力算即可,但是要取模,所以用了乘法逆元. 1 #includ ...

  3. P2265 路边的水沟

    H y p e r l i n k Hyperlink Hyperlink https://www.luogu.com.cn/problem/P2265 D e s c r i p t i o n D ...

  4. 信息学奥赛一本通 1927:【04NOIP普及组】花生采摘 | OpenJudge NOI 1.13 38:花生采摘 | 洛谷 P1086 [NOIP2004 普及组] 花生采摘

    [题目链接] ybt 1927:[04NOIP普及组]花生采摘 OpenJudge NOI 1.13 38:花生采摘 洛谷 P1086 [NOIP2004 普及组] 花生采摘 [题目考点] 1. 模拟 ...

  5. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  6. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  7. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  8. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  9. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

最新文章

  1. 断网,启用网络,关机的实现。
  2. 这三所985,博士生毕业,可能不再要求发表论文!
  3. 数论基础之快速幂(详细教程)
  4. 职称计算机提前考试试卷,职称计算机考试多项选择考试卷模拟考^试题
  5. Oracle数据库空间突然增大,Oracle 表空间异常增长过快解决方法
  6. 【Android】attr、style和theme
  7. Qt中的QString和QByteArray之间转换
  8. composer 安装dev包_「PHP编程」如何搭建私有Composer包仓库?
  9. java简单窗口程序_一个简单的java窗口程序
  10. uni-app APP支付 uni.requestPayment APP微信支付
  11. ARPG游戏中怪物AI实现
  12. org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured
  13. arch Linux更新添加源,Arch Linux 更新源(以清华 arch 源为例)
  14. Redis开发设计规范及案例分析
  15. 梦幻西游网页版无法在虚拟机上运行【游戏】【页游】【虚拟机】
  16. XV6 RISC-V 源码阅读报告之进程模型
  17. java 字母序排序,Java -------- 首字母相关排序总结
  18. 蚂蚁客服介绍-微服网络
  19. 人工智能加速抗生素发现
  20. Python实战-折线图生成

热门文章

  1. 古希腊悲剧《美狄亚》(2)
  2. 医学影像识别中的常用AI指标
  3. 医院his系统更换替换服务器,更换HIS时的数据迁移注意事项
  4. python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行
  5. AJAX的教程(一)
  6. 2019 HDR生态圈纵览
  7. ubuntu下载,直接上中国官网就好了
  8. hexo个人博客收录百度
  9. omnet结果分析anf文件
  10. iview table 横向拖动表格内容滚动