随笔分类 - 洛谷官方题单
摘要:原题链接:https://www.luogu.com.cn/problem/P3817 题意分析:吃最少的糖果,保证相邻糖果数之和不大于x,需要某种贪心策略。 解题思路: 依次遍历相邻两盒糖果 如果糖果数之和大于x,必须要吃点一部分,使得糖果数之和刚好等于x 贪心策略是:优先吃后一盒糖果,因为这样可
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1090 题意解读:两两合并,是典型的哈夫曼编码算法思想,贪心即可。 解题思路: 要是合并体力消耗最少,就要让尽可能少的果子越晚合并越好, 因此,贪心策略为优先选择数量最少的两堆果子合并,一直到剩下一堆果子,把合并过程中的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1803 题意解读:通过某种贪心策略,使得能参加的比赛数越多越好。 解题思路: 将比赛按照结束时间由小到大哦排序, 贪心策略是优先选择结束时间早的比赛,因为这样能保证后面参加更多其他比赛 100分代码: #include
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1223 题意解读:第i个人接水时,后面的n-i个人就要等待,要使平均等待时间最短,即总等待时间最短,贪心法解题。 解题思路: 设一共n个人,第i人的接水时间为ti 总等待时间为:t1*(n-1)+t2*(n-2)+...
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2240 题意解读:金币可以任意分割,贪心模版题。 解题思路: 将金币按照单位价格由大到小排序,优先装单价最高的,最后背包不够装时,对金币进行分割,直到装满背包为止。 100分代码: #include <bits/stdc
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1498 题意解读: 观察样例,可以发现,当n = 1时,得到最基础的图案: /\ /__\ 当n = 2时,将基础图案向下复制两个,并排,然后将之前的图案移到居中的位置 /\ /__\ /\ /\ /__\/__\ 当n
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1228 题意解读:用4种毯子铺满2^k * 2^k的区域,留出一个公主位置,输出所有毯子拐角的坐标以及哪种毯子,看起来有点无从下手, 可以从k=1,k=2,k=3入手去依次考虑,找到规律,用分治法解决。 解题思路: 1、
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1010 题意解读:输出一个正整数的2 的幂次方表示,需要用到二进制数学知识,将整数拆解成2的次幂之和,幂次方也要进行拆解,因此容易想到通过递归处理。 解题思路: 先看样例,给定整数137,要拆解成2的幂次方之和, 先考虑
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1259 题意解读:要打印最终的状态,关键在找到一些变化的规律,直接的暴力搜索复杂度太高。 解题思路: 从样例出发 ooooooo*******--oooooo--******o*oooooo******--o*ooooo
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3612 题意解读:字符串加长的时候,是先把最后一个字符接上,再拼接其余字符,注意不是翻转,要找第n个字符,就要看字符串加长几次后长度能超过n, 然后在加长后的字符串中找第n个字符。 解题思路: 如果直接通过模拟法,字符串
阅读全文
摘要:原题链接: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
阅读全文