HDU 5698 瞬间移动 (组合数 + 阶乘逆元)

2024-03-20 13:32

本文主要是介绍HDU 5698 瞬间移动 (组合数 + 阶乘逆元),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

瞬间移动

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 191    Accepted Submission(s): 99


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

Input
多组测试数据。
两个整数 n,m(2n,m100000)
 
Output
一个整数表示答案
 
Sample Input
  
4 5
 
Sample Output
  
10
 
Source
2016"百度之星" - 初赛(Astar Round2B)
 
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5698

题目分析:因为只能往右下走,所以其实外围的一圈都没用,可以直接删掉第一行最后一行第一列最后一列,然后剩下来的子问题就很熟悉了,答案就是C(n - 2 + m - 2, n - 2),求组合数用阶乘,预处理阶乘和阶乘逆元
#include <cstdio>
#include <cstring>
#define ll long long
int const MOD = 1e9 + 7;
int const MAX = 200000;
ll fac[MAX + 5], inv_fac[MAX + 5];
int n, m;ll qpow(ll x, ll n)
{ll res = 1;while(n){if(n & 1)res = (res * x) % MOD;x = (x * x) % MOD;n >>= 1;}return res;
}void pre()
{fac[0] = 1;for(int i = 1; i <= MAX; i++)fac[i] = (fac[i - 1] * i) % MOD;inv_fac[MAX] = qpow(fac[MAX], MOD - 2);for(int i = MAX - 1; i >= 0; i--)inv_fac[i] = (inv_fac[i + 1] * (i + 1)) % MOD; 
}int main()
{pre();while(scanf("%d %d", &n, &m) != EOF){ll a = fac[n + m - 4] % MOD;ll b = (inv_fac[n - 2] * inv_fac[m - 2]) % MOD;printf("%I64d\n", (a * b) % MOD);}
}


这篇关于HDU 5698 瞬间移动 (组合数 + 阶乘逆元)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829601

相关文章

mysql索引四(组合索引)

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。 因为有事,下面内容全部转自:https://www.cnblogs.com/farmer-cabbage/p/5793589.html 为了形象地对比单列索引和组合索引,为表添加多个字段:    CREATE TABLE mytable( ID INT NOT NULL, use

移动硬盘盒:便携与交互的完美结合 PD 充电IC

在数字化时代的浪潮中,数据已成为我们生活中不可或缺的一部分。随着数据的不断增长,人们对于数据存储的需求也在不断增加。传统的存储设备如U盘、光盘等,虽然具有一定的便携性,但在容量和稳定性方面往往难以满足现代人的需求。而移动硬盘,以其大容量、高稳定性和可移动性,成为了数据存储的优选方案。然而,单纯的移动硬盘在携带和使用上仍存在诸多不便,于是,移动硬盘盒应运而生,以其独特的便携性和交互性,成为了数据存储

VirtualBox中,虚拟系统文件VDI移动或者复制

在安装virtualbox以后有时需要复制,移动虚拟磁盘等操作,这些操作在vmware的虚拟机下面可以直接操作虚拟磁盘即可使用,但是在virtualbox环境 下每个VDI 文件都有一个唯一的uuid,而VirtualBox 不允许注册重复的uuid,所以直接复制的VDI文件是不能拿来使用的,我们就需要使用到virtualbox自带的管理命令来克隆一个VDI,这样通过命令克隆的VDI文件会重

物联网系统运维——移动电商应用发布,Tomcat应用服务器,实验CentOS 7安装JDK与Tomcat,配置Tomcat Web管理界面

一.Tomcat应用服务器 1.Tomcat介绍 Tomcat是- -个免费的开源的Ser Ivet容器,它是Apache基金会的Jakarta 项目中的一个核心项目,由Apache, Sun和其他一 些公司及个人共同开发而成。Tomcat是一一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 在Tomcat中,应用程序的成部署很简

TextGroupView (TextView组合控件)

TextGroupView ImageView + TextView + TextView +TextView+ EditText +ImageView + ImageView 实现的组合控件 JitPack依赖 A.项目/build.grade allprojects {repositories {...maven { url 'https://jitpack.io' }}} B.

上海邀请赛 A题目 HDU 5236(dp)

先求出没有ctrl+s的时候构造长度为i的期望f[i] 。然后枚举保存的次数,求出最小即可。 #include<cstdio>#include<cstdio>#include<cmath>#include<queue>#include<stack>#include<string>#include<cstring>#include<iostream>#include<map>

hdu 2586 树上点对最近距离 (lca)

,只要知道dis[i][j]=dis[i][root]+dis[j][root]-2*dis[Lca(i,j)][root].   其中root为树的根节点,LCA(i,j)为i,j的最近公共祖先。 所以我们先把所有的询问储存下来,然后离线直接查询。复杂度是o(n+q)的。 VIE #include<cstdio>#include<algorithm>#include<i

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。 所以核心就是谁或什么权限能修改

毫米波移动通信系统中的波束赋形

在毫米波移动通信系统中,系统的频点较高,因此毫米波系统的射频器件易于小型化,然而同时也带来绕射能力差、穿透损耗大、路径损耗大[4][5]等缺点,这将大大降低了毫米波通信系统的接收功率,其中阻挡效应被认为是制约毫米波应用于移动通信系统的关键因素之一。为了对抗毫米波移动通信系统的噪声受限问题,目前普遍认为在毫米波移动通信系统中将会在发射端和接收端上同时使用天线阵列进行发送和接收[4][5],因此必须要

在python中使用shutil库移动和复制文件

写一段python脚本,将文件夹中的文件根据文件名称、属性或者时间将文件分成几个不同种类,并保存到设定好的文件夹中。在这里需要用到几个模块。 os模块。主要使用该模块的两个功能,一是检查涉及到的文件夹是否存在,如不存在给出解决方案,停止运行或者新建文件               夹。二是listdir(path)提取源文件夹中的文件目录列表,可遍历此列表实现对文件夹中文件的遍历