星际青蛙(木木版)

背景
在3XXX年,青蛙占领了整个宇宙。有一天,两个种族的青蛙在一个虫洞相遇了。

由于,虫洞开启只有2S时间,且距离有几十万光年,虽然青蛙种族有超强的飞行器(有级强的防撞装甲),但是虫洞的大小不允许两个种族同时通过,所以他们在虫洞的中间相撞了。(以几亿倍的光速飞行相撞,不知会不会造成时空扭曲d-.-!) 没有办法,他们只能从飞行器中出来,跳到对方的飞行器里,交换飞行。忽然,闪出几个庞大的黑影(废话,虫洞里原本就是黑的),身体形似乌龟(啊?!是忍者神经龟?),原来是星际乌龟的弱小种族的两个小队,为了摆脱被统治的现状使用了被禁的时空裂缝产生器,来到1000000000年前的3XXX年做最后的挽回斗争。(靠,青蛙忒强了统治N久啊)星际乌龟们真倒霉啊,刚做好时空穿梭就遇见了冤家,没辙只得混在其中一起做交换飞行,学青蛙跳可不容易,只得当会“无壳乌龟”了。(看来星际青蛙还得统治N久。。。)

描述
在两族之间有一个空地,青蛙(乌龟)每次可以向前跳一步,也可以借助前面青蛙(乌龟)的背,跳到前面青蛙(乌龟)的前面一格(这格必须无青蛙、乌龟),因为两族青蛙(两队乌龟)都互不相让,所以无法掉头向后跳。请你在1S内,算出所有青蛙(乌龟)到对方飞行器至少要跳几步?

格式
输入格式
输入X,Y。X为星际青蛙种族X和星际乌龟小队A的数量,Y为星际青蛙种族Y和星际乌龟小队B。(X,Y<=1009998979695…7654321)

输出格式
输出M,M为最少步数。(m<=无穷大)

样例1
样例输入1
1 1
样例输出1
3
限制
1S

提示
样例的跳法(*表示星际青蛙种族X和星际乌龟小队A,o星际青蛙种族Y和星际乌龟小队B)
原始:*_o
第1步:_*o
第2步:o*_
第3步:o_*
别忘用高精度噢d^o^!

#include<bits/stdc++.h>
using namespace std;
long long x,y;
int main(){
cin>>x>>y;
cout<<(x+1)*(y+1)-1;
return 0;
}

关于 ans:=a*b+a+b
:如果大家都只能一次移一格
那么将所有的x要想右移(b+1)格 和将所有y 左移(a+1)格后 便得到目标状态
这花费了 a*(b+1)+b*(a+1) 次
而实际上是可以一次移两格的不需要这么多次的
对于每一对x、y 要么x跳过y 要么y跳过x 所以一共跳了a*b次
a*(b+1)+b*(a+1)-a*b=a*b+a+b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值