题目

题目背景

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;
}

求关注

洛谷P2265 路边的水沟的更多相关文章

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

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

  2. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  3. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  4. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  5. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  6. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  7. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  8. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  9. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

随机推荐

  1. Android零基础入门第87节:Fragment添加、删除、替换

    前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加.删除.替换. 一.概述 在前面的学习中,特别是动态加 ...

  2. 中国自主X86处理器工艺跃进:国产28nm升级16nm(上海兆芯)

    提到X86处理器,世人皆知Intel.AMD,殊不知还有个VIA(威盛),在Intel反垄断世纪大战中VIA公司作为Intel霸权的受害者也最终确认了X86授权,不过VIA与前面两家的实力相差太远,X ...

  3. Delphi7 时钟(使用了多个自定义组件)

    http://download.csdn.net/detail/akof1314/3073289

  4. SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言

    SharePoint Add-in Model 是自 2013 版本以来引入的新的扩展性开发模型, SharePoint 开发者可以利用这种新模型来实现往常利用场解决方案 (Farm Solution ...

  5. BI-学习之 新概念介绍

    什么是统一维度模型 层次结构.级别.成员和度量值 什么是MDX MDX与SQL的区别 什么是数据仓库 什么是OLAP数据分析引擎 BI企业级解决方案 什么是统一维度模型 维度(dimension)是描 ...

  6. 为什么你有10年经验,但成不了专家?(重复性刻意训练+反馈修正,练习的精髓是要持续地做自己做不好的,太精彩了)真正的高手都有很强的自学能力,老师和教练的最重要作用是提供即时的反馈(莫非我从小到大学习不好的原因在这里?没有单独刻意训练?) good

    也许简单看书就是没有刻意训练.更没有反馈,所以没有效果 我倒是想起自己,研究VCL源码的时候,都是自己给自己提问,然后苦思冥想.自己解决问题,然后Windows编程水平果然上了一个台阶.对什么叫做“框 ...

  7. 利用apache搭建本地环境

    登陆http://httpd.apache.org/download.cgi到apache的官方下载页面. 选择一个版本,以最新版为例,点击Binaries.

  8. jquery测试文档

    Jquery版本:* jQuery JavaScript Library v1.3.2 * http://jquery.com/ 引用:<script src="JS/jquery.j ...

  9. VS Code真机测试步骤

    VS Code真机测试步骤 前提:你的电脑跟你的手机是在同一个网络环境下.电脑连手机热点: 1. 在扩展里搜索live server,下载安装: 2. 打开cmd 命令窗口(快捷键是win+r): 输 ...

  10. 常用URL分享,实用地址

    常用地址 文库文档免费下载地址1:http://www.hiwenku.com/ 文库文档免费下载下载2:http://www.20009.net/wk.html google地图拾取器:http:/ ...