首页 > 其他分享 >洛谷题单指南-递推与递归-P2437 蜜蜂路线

洛谷题单指南-递推与递归-P2437 蜜蜂路线

时间:2024-02-18 11:55:22浏览次数:27  
标签:标号 int 洛谷题 蜂房 递推 P2437

原题链接:https://www.luogu.com.cn/problem/P2437

题意解读:根据题目要求,只能从标号小的蜂房爬到标号大的相邻蜂房,即每次要么爬到+1的蜂房,要么爬到+2的蜂房,本质上是一个斐波那契数列问题,和数楼梯问题一样。

解题思路:

要求从m号蜂房到n号蜂房的路径,即走n-m级楼梯的方案,n最大1000,同样需要用高精度来处理,代码和P1255基本一致。

100分代码:

#include <bits/stdc++.h>
using namespace std;

const int N = 1005;

int f[N][500]; //每行存一个高精度整数,每行第一个数代表这一行数的长度
int m, n;

int main()
{
    cin >> m >> n;

    f[0][0] = 1, f[0][1] = 1; //初始化第一行
    f[1][0] = 1, f[1][1] = 1; //初始化第二行
    
    for(int i = 2; i <= n; i++)
    {
        //高精度加法,计算法斐波那契数列
        for(int j = 1; j <= max(f[i - 1][0], f[i - 2][0]); j++)
        {
            f[i][j] += f[i - 1][j] + f[i - 2][j];
            f[i][j + 1] += f[i][j] / 10; 
            f[i][j] = f[i][j] % 10;

            f[i][0] = j;  //更新长度
            if(f[i][j + 1]) f[i][0] = j + 1; //如果有进位,再次更新长度
        }   
    }
    
    //输出结果,从m到n的路线,即从0到n-m的路线,对应斐波那契数列f[n - m]
   for(int i = f[n - m][0]; i >= 1; i--) cout << f[n - m][i];

    return 0;
}

 

标签:标号,int,洛谷题,蜂房,递推,P2437
From: https://www.cnblogs.com/jcwy/p/18019049

相关文章

  • 洛谷题单指南-递推与递归-P1928 外星密码
    原题链接:https://www.luogu.com.cn/problem/P1928题意解读:要对形如xxx[Nxxx]xxx的字符串进行解码,[]内第一个数表示括号中字符串重复的次数,可以嵌套。解题思路:用递归进行处理,设函数decode(start,end)将下标从start到end之间字符串进行解码递归过程如下:遍历start~end的每一个字......
  • Codeforces Round 113 (Div. 2)E. Tetrahedron(dp、递推)
    目录题面链接题意题解代码总结题面链接E.Tetrahedron题意从一个顶点出发走过路径长度为n回到出发点的方案总数题解考虑dp\(f[i][0|1|2|3]\):走了i步,现在在j点的方案总数转移:\(f[i][0]=f[i-1][1]+f[i-1][2]+f[i-1][3]\)\(f[i][1]=f[i-1][0]+f[i-1][2]+f[i-1][3]\)\(f......
  • 洛谷题单指南-递推与递归-P1464 Function
    原题链接:https://www.luogu.com.cn/problem/P1464题意解读:虽然a、b、c可输入的范围比较大,但是递归中,只会限制在0-20以内,由于递归中有大量的重复计算,因此需要采用记忆化搜索来保存已经计算过的递归函数值。解题思路:定义三位数组LLmem[25][25][25],mem[a][b][c]保存w(a,b,c)的......
  • 【洛谷 P2437】蜜蜂路线 题解(递归+记忆化搜索+高精度)
    蜜蜂路线题目描述一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房开始爬到蜂房,,有多少种爬行路线?(备注:题面有误,右上角应为)输入格式输入的值输出格式爬行有多少种路线样例#1样例输入#1114样例输出#1377提示对于100%的......
  • 洛谷题单指南-递推与递归-P1028 [NOIP2001 普及组] 数的计算
    原题链接:https://www.luogu.com.cn/problem/P1028题意解读:给定n,构造数列,可以用递归或者递推。解题思路:1、递归定义count(n)返回数列的个数  n==1时,count(n)=1  n!=1时,count(n)=1+count(1)+count(2)+...+count(n/2)注意,递归会导致大量重复计算,需要用一个hash......
  • 洛谷题单指南-递推与递归-P1044 [NOIP2003 普及组] 栈
    原题链接:https://www.luogu.com.cn/problem/P1044题意解读:一组数入栈、出栈的方案数,如果了解卡特兰数,此题可以秒杀;如果不了解,也可以通过递归或者递推来解决;最次,可以通过DFS暴搜出方案数,当然对于n个数,一共有n次入栈、n次出栈,一共2n次,每次要么入栈要么出栈,总搜索次数在22n规模,n最......
  • 洛谷题单指南-递推与递归-P1002 [NOIP2002 普及组] 过河卒
    原题链接:https://www.luogu.com.cn/problem/P1002题意解读:从A(0,0)点走到B(n,m)点,只能向右或者向下,C点以及其控制点不能走。解题思路:根据题意,此题要么递归(DFS),要么递推(动态规划)先分析数据规模,最大从起点到终点要走40步,每个步有2种走法,一共240种路径,DFS会超时,且方案数必须用longlong......
  • P5110 块速递推
    生成函数求递推通项的入门题。不妨假设\(\alpha=233\),\(\beta=666\)。可以快速得到\(a_i\)的OGF:\[G(x)=\frac{x}{1-\alphax-\betax^2}\]OGF的核心式子是\((a+b)^n\),我们考虑把分式下面化成二项式:\[1-\alphax-\betax^2=(1-Ax)(1-Bx)\Rightarrow\begin......
  • 洛谷题解-P1194 买礼物
    https://www.luogu.com.cn/problem/P1194题目描述又到了一年一度的明明生日了,明明想要买BBB样东西,巧的是,这BBB样东西价格都是AAA元。但是,商店老板说最近有促销活动,也就是:如果你买了第III样东西,再买第JJJ样,那么就可以只花KI,JK_{I,J}KI,J​元,更巧的是,KI,JK_{I,J}K......
  • 洛谷题单指南-暴力枚举-P2392 kkksc03考前临时抱佛脚
    原题链接:https://www.luogu.com.cn/problem/P2392题意解读:由于可以同时计算两道同一科的题目,只需要把某一科题目分两堆,使得两堆总时长之差最小,时长较大的一堆就是完成这一科的最短时间。解题思路:既然直到了要把一科题目分两堆,关键是如何分堆呢?比较容易犯的错是用贪心来解题:把......