1515 跳 - Wikioi

题目描述 Description
邪教喜欢在各种各样空间内跳。
现在,邪教来到了一个二维平面。在这个平面内,如果邪教当前跳到了(x,y),那么他下一步可以选择跳到以下4个点:(x-1,y), (x+1,y), (x,y-1), (x,y+1)。
而每当邪教到达一个点,他需要耗费一些体力,假设到达(x,y)需要耗费的体力用C(x,y)表示。
对于C(x,y),有以下几个性质:
1、若x=0或者y=0,则C(x,y)=1。
2、若x>0且y>0,则C(x,y)=C(x,y-1)+C(x-1,y)。
3、若x<0且y<0,则C(x,y)=无穷大。
现在,邪教想知道从(0,0)出发到(N,M),最少花费多少体力(到达(0,0)点花费的体力也需要被算入)。
由于答案可能很大,只需要输出答案对10^9+7取模的结果。
输入描述 Input Description
读入两个整数N,M,表示邪教想到达的点。
输出描述 Output Description
输出仅一个整数,表示邪教需要花费的最小体力对10^9+7取模的结果。
样例输入 Sample Input
1 2
样例输出 Sample Output
6
数据范围及提示 Data Size & Hint
对于10%的数据,满足N, M<=20;
对于30%的数据,满足N, M<=100;
对于60%的数据,满足min(N,M)<=100;
对于100%的数据,满足0<=N, M<=10^12,N*M<=10^12。

 

 

首先我们可以发现,格子上的值就是组合数,然后稍微想一下就可以贪心(打表也可以啊)

一直往小的那边走,然后就得到一个min(n,m)*log(10^9+7),log是求乘法逆元,用费马小定理求逆元,这样理论复杂度是可以过的,但是p党没人权还要优化一点

其实贪心的路径很好算,有一条都是1,另一条加起来其实就是C(n+m+1,min(n,m))(我是下别人的代码才知道的)

所以答案就是max(n,m)+C(n+m+1,min(n,m))

 1 const
 2     h=1000000007;
 3 var
 4     n,m,ans,s:int64;
 5 
 6 procedure swap(var x,y:int64);
 7 var
 8     t:int64;
 9 begin
10     t:=x;x:=y;y:=t;
11 end;
12 
13 function mexp(a,b:int64):int64;
14 begin
15     if b=0 then exit(1);
16     mexp:=sqr(mexp(a,b>>1))mod h;
17     if b and 1=1 then mexp:=mexp*a mod h;
18 end;
19 
20 procedure main;
21 var
22     i:longint;
23 begin
24     read(n,m);
25     if n>m then swap(n,m);
26     s:=1;
27     for i:=1 to n do
28       s:=s*(((n+m-i+2)mod h)*mexp(i,h-2)mod h)mod h;
29     ans:=m+s;
30     writeln(ans mod h);
31 end;
32 
33 begin
34     main;
35 end.
View Code

 

转载于:https://www.cnblogs.com/Randolph87/p/3746367.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python dry原则_关于Python 的这几个技巧,你应该知道

随着大数据时代的到来&#xff0c;我们每天都在接触爬虫相关的事情&#xff0c;这其中就不得不提及Python这门编程语言。我已经使用Python编程有多年了&#xff0c;即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年来的经历让我学到了很多的小…

快速格式化的DOS命令是什么?

https://zhidao.baidu.com/question/3269005.html Dos下的format命令是用来进行格式化的。 FORMAT A:或c:, d:等等&#xff0c;后面可以加一些参数 比如FORMAT A: /S 这是格式化并追加系统。也就是制作一个简单的启动盘。 如果给硬盘进行格式化&#xff08;重装系统前的准备工…

instanceof的用法①

1 public class typeof1{2 private String a"zzw";3 public void instance(){4 if(a instanceof String) //判断是不是String类型的5 {6 System.out.println("hello world!");7 }8 }9 public static …

ADT-bundle

eclipse 弹出 Version 1.4.2_03 of the JVM not suitable for this product.Version1.6or geeater is requir 原因jdk版本过低&#xff0c;需更换高版本 ADT-bundle-linux-X86 解压后有两个文件夹eclipse 和sdk 注意&#xff1a;adb命令在platform-tools下 解压后还需修改sdk的…

runtest的选项应用

runtest 6 --installnfs-utils-1.2.3-76.el6 --jobn2 #install指定安装包版本&#xff0c;jobn指定提交job数量 distro-list.sh all | grep -i fedora #查找所有fedora的分支&#xff0c;fedora25,27在beaker上安装不稳定&#xff0c;所以以后验证时使用fedora27&am…

合并两个有序链表算法(leetcode第21题)

题目描述&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a;输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a;输入&#xff1a;l1 [], l2 [] 输…

css设置鼠标滑过背景变色;鼠标滑过背景变色

https://jingyan.baidu.com/article/9158e000381292a254122828.html div:hover{background-color: red;}

vue 微信支付的坑_vue_模式下h5微信支付

微信公众号配置网页授权域名&#xff1a;填写网址域名微信开发者平台配置url&#xff1a;访问url&#xff1a;http://www.bc.com/pay/pay支付授权目录&#xff1a;http://www.bc.com/pay/访问url&#xff1a;http://www.bc.com/pay支付授权目录&#xff1a;http://www.bc.com/访…

修改maven本地仓库位置

2019独角兽企业重金招聘Python工程师标准>>> 首先需要安装好&#xff0c;假设安装位置在&#xff1a;D:\****\maven\apache-maven-3.3.3修改本地仓库位置&#xff0c;打开配置文件&#xff1a;D:\****\maven\apache-maven-3.3.3\conf\settings.xml<!-- localRepo…

iOS sqlite

iOS sqlite数据库操作。步骤是&#xff1a; 先加入sqlite开发库libsqlite3.dylib&#xff0c; 新建或打开数据库&#xff0c; 创建数据表&#xff0c; 插入数据&#xff0c; 查询数据并打印 1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib 2、sqlite 的方法 sqlite…

redis在php中的基本使用

//使用autoload加载相关库,这边重点就是为了require $file; spl_autoload_register(function($class) { $file __DIR__.’/lib/Predis/’.$class.’.php’; if (file_exists($file)) { require $file; return true; } }); //配置连接的IP、端口、以及相应的数据库 …

ad如何设置pcb板子形状_手把手教你在PCB上添加泪滴

泪滴(Teardrops)在PCB电路板设计中&#xff0c;为了让焊盘更坚固&#xff0c;防止机械制板时焊盘与导线之间断开&#xff0c;常在焊盘和导线之间用铜膜布置一个过渡区&#xff0c;形状像泪滴&#xff0c;故常称做补泪滴&#xff08;Teardrops&#xff09;。泪滴的作用避免电路板…

用模版实现简单的内存池

程序中有时候会遇到这种情况&#xff0c;就是需要不停的去分配以及释放内存。带来的是不停的调用new以及delete带来的开销。 而且由于全局的new以及delete往往对多线程做出了并发保护&#xff0c;所以在单线程情况下这更带来一种浪费&#xff0c;一般的情况下是去实现一个 单线…

WordPress插入图片无法居中的解决方法

img.img-responsive {display: block;margin-left: auto;margin-right: auto; } 参考:https://www.22vd.com/38777.html

织梦标签大全2

系统标签&#xff1a; {dede:global.cfg_basehost/} {dede:global.cfg_webname/} {dede:global.cfg_powerby/}版权信息 {dede:field.keywords/} {dede:field.description/} {dede:global.cfg_beian/} {dede:global.cfg_templets_skin/}/style/ {dede:global.cfg_templets_skin/…

python编写脚本,删除固定用户下的所有表

脚本如下&#xff1a;[oracleycr python]$ more t_del.py #/usr/bin/python#coding:utf8import sysimport cx_Oraclei0conncx_Oracle.connect(%s/%s%s % (sys.argv[1],sys.argv[2],sys.argv[3]))cursorconn.cursor()cursor.execute(select table_name from user_tables)rowscur…

在Brackets中使用jsHint遇到的问题

在Brackets安装使用jsHint&#xff0c;但发现jsHint不生效&#xff0c;仅有Brackets自带的jsLint生效。 此时可通过修改配置文件解决&#xff0c;首先确定已经安装了jsHint&#xff0c;在右边栏点击 Extension Manager图标&#xff0c;搜索jsHint&#xff0c;安装即可。 然后点…

华为云hcip认证试题_首信AAA认证计费系统通过华为云兼容性认证,成为华为认证级ISV伙伴...

点击上方“蓝字”关注我们首信AAA认证计费系统软件3.0在2020年9月24日通过华为云Stack 6.5(鲲鹏)的兼容性测试&#xff0c;最终获得华为技术认证书及HUAWEI COMPATEBLE相关认证徽标使用权。同时&#xff0c;首信科技获得华为认证级ISV伙伴认证证书。本次获得的产品兼容性认证及…

数据格式转换(一)PDF转换技术

PDF&#xff08;Portable Document Format&#xff09;文件格式是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关&#xff0c;这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料…