摘要:
原题链接:https://www.luogu.com.cn/problem/P1990 题意解读:用两种可旋转的形状铺满N*2的区域,求方案数,可以使用递推。 解题思路: 步骤1、设f[i]表示铺满i*2的区域的方案数 根据要求,i*2区域最后一列有4种可能的铺法: 如果采用图1铺法,则有f[i] 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1164 题意解读:要求正好把钱花完,并且统计不同的点菜方案数,本质上是一个背包问题,给定背包体积,要求物品正好装满背包的方案数。 解题思路: 1、最直观的解法是暴搜: DFS枚举每一道菜,有点或者不点两种选择,并且累加上 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P2437 题意解读:根据题目要求,只能从标号小的蜂房爬到标号大的相邻蜂房,即每次要么爬到+1的蜂房,要么爬到+2的蜂房,本质上是一个斐波那契数列问题,和数楼梯问题一样。 解题思路: 要求从m号蜂房到n号蜂房的路径,即走n- 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1928 题意解读:要对形如xxx[Nxxx]xxx的字符串进行解码,[]内第一个数表示括号中字符串重复的次数,可以嵌套。 解题思路: 用递归进行处理,设函数decode(start,end)将下标从start到end之间 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1464 题意解读:虽然a、b、c可输入的范围比较大,但是递归中,只会限制在0-20以内,由于递归中有大量的重复计算,因此需要采用记忆化搜索来保存已经计算过的递归函数值。 解题思路: 定义三位数组LL mem[25][25 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1028 题意解读:给定n,构造数列,可以用递归或者递推。 解题思路: 1、递归 定义count(n)返回数列的个数 n==1时,count(n) = 1 n!=1时,count(n) = 1 + count(1) + c 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1044 题意解读:一组数入栈、出栈的方案数,如果了解卡特兰数,此题可以秒杀;如果不了解,也可以通过递归或者递推来解决 ;最次,可以通过DFS暴搜出方案数,当然对于n个数,一共有n次入栈、n次出栈,一共2n次,每次要么入栈 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1002 题意解读:从A(0,0)点走到B(n,m)点,只能向右或者向下,C点以及其控制点不能走。 解题思路: 根据题意,此题要么递归(DFS),要么递推(动态规划) 先分析数据规模,最大从起点到终点要走40步,每个步有2 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P1255 题意解读:n层楼梯,每次上1层或2层,求方案数,典型的斐波那契数列问题。 解题思路: 设f[i]为走到第i层楼的方案,由于每次只能上1层,或者2层,所以要么从i-1层上到i层,要么从i-2层上到i层, 根据加法原 阅读全文
摘要:
原题链接:https://www.luogu.com.cn/problem/P2036 题意解读:寻找一个配料组合,使得总酸度与总苦度之差最小。 解题思路:在n个配料中,枚举子集即可,依然使用二进制法。 70分代码:(满分就是70) #include <bits/stdc++.h> using na 阅读全文