P1244 青蛙过河

来源:互联网 发布:如何定义一个新数组 编辑:程序博客网 时间:2024/05/20 06:22

题目描述

有一条河,左边一个石墩(A区)上有编号为1,2,3,4,…,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图所示。n只青蛙要过河(从左岸石墩A到右岸石墩B),规则为:

(1)石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大小);

(2)青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,D→B,D→C,C→D;

(3)当一个石墩上有多只青蛙时,则上面的青蛙只能跳到比它大1号的青蛙上面。

你的任务是对于给出的h,k,计算并输出最多能有多少只青蛙可以根据以上规则顺利过河?

输入输出格式

输入格式:

两个整数h,k

输出格式:

一个整数,表示最多能有多少只青蛙可以根据以上规则顺利过河。

输入输出样例

输入样例#1:
2 3
输出样例#1:
16






代码少,想出来很困难

超级无敌大bug

题目看好久,要用分治思路

公式:hs(s,y)=2*hs(s-1,y);


#include <iostream>using namespace std;int hs(int s,int y){int a;if(s==0)a=y+1;else{a=2*hs(s-1,y);return a;}}int main(){int a;int n,k;cin>>n>>k;a=hs(n,k);cout<<a;return 0;}



1 0
原创粉丝点击