动态规划hdu2501

hdu 2044 2501 一只小蜜蜂#DP#斐波那契#java水大数 Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。 Input 输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0 Output 对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例 阅读详情

本文依旧是动态规划的题,杭电的2501题。

有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。
 

Input
输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列。
 

Output
输出一共有多少种铺设的方法,每组数据的输出占一行。
 

Sample Input
3 2 8 12
 

Sample Output
3 171 2731




分析题目,如果N为1的话,结果就是只能放置一个2*1的木板结果为1,如果为2的话,结果就是3可以放置一个2*2,或者两个1*2,或者2*1。

分析问题为,现在剩余需要填充的剩余一个记为f[i-1]剩余两个记为f[i-2]。
此时函数就应该是f[i]=f[i-1]+f[i-2]。但是提交之后失败了,在网上查了之后,是因为在情况1和情况2有重合的情况,那么重合了多少呢?

重合的就是i-1放置的是1*2的木板的时候有f[i-2]中,所以最后就是f[i]=f[i-2]*2+f[i-1]  。
import java.util.Scanner;
public class Main {

   public static void main(String[] args){
	    
	   	long f[] =new long[51];
	    f[1]=1;
	    f[2]=3;
	    for(int i=3;i<51;i++)
    	{
    		f[i]=f[i-1]+2*f[i-2];
    	}
	   	Scanner sc=new Scanner(System.in);
	   	int t=Integer.valueOf(sc.nextLine());
	   	while((t--)!=0)
	   	{
	   		int a=sc.nextInt();
		    System.out.println(f[a]);
	   	}
    }
}


3 171 2731
HDU2501解题报告 HDU2501 Tiling_easy version 解题报告 立即下载

相关推荐

手把手教你用光耦搭建安全隔离电路:从洗衣机控制板到PLC输入模块实战

本文通过洗衣机控制板驱动高压电机和PLC输入模块采集现场信号两个实战场景,手把手教你使用光耦搭建安全隔离电路。文章详细解析了电路架构、关键器件选型、参数计算、仿真验证及PCB布局避坑技巧,并对比了光耦与数字隔离器的适用场景,帮助电子工程师掌握这门保障系统稳定与安全的必备技能。

h6j7k8l9p0的博客 462

美团笔试编程第一题:并行道

有一个2*n的网格,有一个人位于(1,1)的位置,即左上角,他希望从左上角走到右下角,即(2,n)的位置。在每一次,他可以进行三种操作中的一种: 1. 向右走一格,即从(x,y)到(x,y+1); 2. 向上右方走一格,即,如果他在(2,y)的位置可以走到(1,y+1); 3. 向下右方走一格,即,如果他在(1,y)的位置可以走到(2,y+1); 问题当然不会这么简单,在这2*n的格子中,有一部分...

qq_44665927的博客 277

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 276

杭电OJ变形 骨牌铺满方格 2501

问题描述 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 ,请计算一共有多少种铺设的方法。 (类似于斐波那契数列) 问题分析:(重要) 先将n=1,n=2分析出来,(先将初始的几个值分析出来) 之后从最后面分析递推公式。所有的骨牌只有两只形式放置(横或者竖),当骨牌竖着放置时,所有的方法有f(n-1)种,当骨牌横着放置时,所有的方法有f(n-2)种;所以递推公式为这两种方法的总合 f(n)=f(n-1)+f(n-2)。 代码: #include<stdi

绿色水杯 611

使用下一代的嵌入式IDE-PlatformIO 教程

1.生成工程 1.1 打开STM32CubeMX: 选择你的MCU,这里我用的是STM32F103RC RCC中开启外部HSE时钟,外部时钟比HSI更稳定些 开启DEBUG 4线 打开串口1用于打印调试信息,波特率115200,校验位0,停止位1 打开串口2用于MODBUS协议,波特率9600,校验位0,停止位1 接入RT-thread:参考官方文档 基于 CubeMX 移植 RT-Thread Nano 根据官方文档,需要1.取消生成HardFault_Handler、PendSV_Handler、Sy

jiladahe1997的博客 3万+

别再只调A*算法了!聊聊ROS机器人导航中,OpenCV视觉信息如何与激光雷达数据“打配合”

本文探讨了ROS机器人导航中激光雷达与OpenCV视觉融合的实战策略,揭示了如何通过多模态感知提升导航精度。文章详细介绍了视觉特征到代价地图的转化方法、系统级挑战的工程解决方案,以及融合感知下的路径规划进化,帮助开发者优化机器人导航系统。

weixin_29278805的博客 226

铺方格(升级版递推)详细解答

题目: 有一个大小是2xN的网格,现在需要用2种规格的骨牌铺满,骨牌的规格分别是2x1和2x2,请计算一共有多少铺设的方法。(从左向右铺) 输入: T组数据,N网格列数 (0<N<=50) 输出: 所有方案m Sample Input 1 3 2 Sample Output 1 5 3 解题思路: 这道题和超级楼梯有异曲同工之妙,建议先看下超级楼梯。附上超链接! 超级楼梯 首先这道题有三种铺设方法,第一种竖着放2x1的砖,第二种横着放2x1的砖,第三种放2x2的砖!但是不可以错位横着铺设,不然会

weixin_46503238的博客 531

利用setEcoMode优化innovus中的ecoAddRepeater批量操作效率

本文详细介绍了在Cadence Innovus工具中,如何利用setEcoMode命令的batchMode参数,显著提升ecoAddRepeater命令在批量插入buffer或inverter时的操作效率。通过合并重复的初始化和数据库更新开销,该模式可将大规模时序修复操作的执行速度提升数倍,并提供了完整的脚本示例与最佳实践,帮助后端设计工程师优化ECO流程。

mango的博客 513

hdu2501 简单递推

Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 626 Accepted Submission(s): 544   Problem Descri

小川先生的博客 1549

基于YOLOv11的工业零件表面缺陷检测系统:从原理到实现

工业质量控制是制造业的核心环节,表面缺陷检测作为其中重要组成部分,直接关系到产品质量和企业效益。本文详细介绍了一种基于YOLOv11深度学习算法的工业零件表面缺陷检测系统,包含完整的算法原理分析、数据集构建方法、模型训练策略以及用户界面设计。通过大量实验验证,该系统能够高效准确地检测零件表面的划痕、凹陷、锈蚀等多种缺陷,检测精度达到96.2%,满足工业实时检测需求。本文还提供了完整的代码实现和详细的技术文档,为相关领域的研究者和工程师提供参考。关键词:表面缺陷检测;YOLOv11;深度学习;工业视觉;

YOLO 567

Pytorch实现EdgeCNN(基于PyTorch实现)

本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代码实例都附带有完整的代码。

优快云 精品推荐 1万+

HDU Tiling_easy version

Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 107 Accepted Submission(s): 95 Problem Description 有一个大小是 2 x n ...

weixin_34128237的博客 251

【VS开发】【DSP开发】WinDriver简介(或介绍)

WinDriver for Windows简化并自动化了用户模式Windows设备驱动程序的开发,支持设备包括PCI / CardBus / ISA/ PCI-104 / PCMCIA * / PMC / PCI-X 和 CompactPCI,无需DDK或内核级编程知识。关于USB设备驱动开发,请参见WinDriver USB for Windows。   WinDriver包含一系列

ZhangPY的专栏 1474

hdu2501基础dp

/***************************************** Author :Crazy_AC(JamesQi) Time :2015 File Name :思路:显然i是有(i- 1)和(i- 2)这种情况来的;先考虑从(i- 1)这种情况来看,必然是dp[i] = dp[i - 1];只能在第i个竖列放一个2 * 1的木板;再考虑从第(i-

KIJamesQi的博客 899

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HDU----2501(递推)

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2501 这个题目与HDU2190--悼念512汶川大地震遇难同胞—重建希望小学一模一样,都是地板砖 有点神奇,复制一下啦,没有改。 #include<bits/stdc++.h> using namespace std; long long a[40]; int main(void) { int n; int k; a[0]=1; a[1]=3; for(int i=2;i<4

m0_53916335的博客 207

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU 2501.Tiling_easy version

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2501 AC代码(C++): #include #include #include #include #include #define INF 0x3f3f3f3f #define eps 1e-8 using namespace std; long long dp[35];

njyexiong的博客 228

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

hdu 2501 Tiling_easy version

题目链接 : hdu 2501 Tiling_easy version 规律题 从最左边开始贴,我们把n列贴完所需的方法数设为f[n],若先按列来贴,贴完第一列,那么就剩n-1列,则我们让我们算n-1列的方法数,就是算f[n-1],若一开始按照行来贴,则一开始会有两种方式,2×1两块或者2×2一块,那么还剩n-2列,我们就要算f[n-2],综上所述,若要贴n列,我们们有f[n-1]+f[n-2

parting_soul的专栏 406

Tiling_easy version

http://acm.hdu.edu.cn/showproblem.php?pid=2501 题解:递推 dp[i+2]=dp[i+1]+2*dp[i] dp[i+2]相对于dp[i]正好多一个2x2的正方形,当前 i+1 个格子都填满后,则第i+2 个格子就确定了,而当前i个 都填满后,为了不与i+1 个格子都填满的方案重复,则还有两种方案可选,直接填2x2或填两个1x2(横着填) #...

无限迭代中...... 491

HDU 2501 [Tiling_easy version] 递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2501 题目大意:有2*N个格子,有2种牌(2*1的和2*2的),问有多少种铺满的方式。 关键思想:画图联想。找到递推式。 N为奇数时,dp[n]=2*dp[N-1]-1. N为偶数时,dp[n]=4*dp[N-2]-1. 代码如下: //观察,递推 #include <ios...

weixin_30678349的博客 98

HDU2501 Tiling_easy version【递推+打表】

Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11792 Accepted Submission(s): 8974 Problem Description 有一个大小是 2 x n 的网格,...

海岛Blog 685

HDU 2501 Tiling_easy version

 http://acm.hdu.edu.cn/showproblem.php?pid=2501 递推公式:f[i]=f[i-1]+f[i-2]*2 思路: 1、对于i-1个来说剩两个直接补一个2*1的即可,有f[i-1]种 2、对于i-2个来说,剩四个,有三种方法:a、一个2*2;b、两个横着的1*2;c、两个竖着的1*2,显然c中跟第一种冲突,所以有2*f[i-2]中

思维迷宫 374

hdu 2501

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2501 递推题:dp[i]=dp[i-1]+dp[i-2]*2(i>=3); View Code 1 #include 2 using namespace std; 3 int dp[40]; 4 5 int main(){ 6 dp[0]=0,dp[1]=1

几百个教授的专栏 594

hdu 2501 dp

Tiling_easy version Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4744    Accepted Submission(s): 3738 Problem Description 有一个大小是 2 x

x___song的专栏 1101
上一篇: hdu2044(dp训练2)
下一篇: 树形动态规划之树的最大独立集
Round_Yuan
博客等级 码龄10年 26粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值