02 2024 档案
摘要:原题链接:https://www.luogu.com.cn/problem/P1678 题意解读:要计算不满意度之和的最小值,就要保证每个人的不满意度最小,即选择的学校录取分数-学生分数之差的绝对值最小。 解题思路: 如何在学校录取分数中找与学生分数最接近的呢?有三种可能: 1、学生分数在录取分数中
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1024 题意解读:方程在-100~100范围内有三个根,则必然存在两个数l<r,使得f(-100) * f(l)<0,f(l)*f(r)<0,f(r)*f(100)<0 解题思路: 设方程的三个根是x1、x2、x3,l在
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1873 题意解读:要求伐木机锯片最大是多少时,至少能得到M米的木材,伐木机锯片越大,能得到的木材越少。 解题思路: 根据题意,下列判定条件可以把锯片长度分为两类: 1、得到木材长度小于M米(锯片不符合要求:false)
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1102 题意解读:寻找A-B=C的数对数量,C大于0,B一定比A小,枚举B,找A是否存在即可。 解题思路: 先将数据由小到大排序,接下来介绍两种方法:二分、双指针 1、二分 枚举第1~n-1个数,作为B,寻找A=B+C的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2249 题意解读:找有序数组中某个数第一次出现的位置,二分模版题,由于是二分板块的第一题,有必要对二分的各种模版进行介绍。 解题思路: 关于二分的一切: 1、二分的本质 二分的本质,是通过某种判定把目标范围划分成两个区间
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1080 题意解读:通过不同的排队方式,让获得最多奖赏的大臣金额尽可能的少。此题如果没有思路,用全排列枚举可以“骗”分,更好的做法直觉上是某种贪心策略,另外基于数据规模考虑,要拿满分,需要上高精度。下面就由浅入深一步一步的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4447 题意解读:将一个有序的数列,按不重复连续数分成一组,可分成若干组,使得人数最少的组在各种分组方式之中是最大的。 解题思路: 观察样例说明,有6个测试点的ai互不相同,因此直接将数据排序,然后连续数分成一组,计算
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4995 题意解读:消耗最大的体力跳完所有石头,贪心选择问题。 解题思路: 贪心策略: 每次保证有最大的高度差即可, 第一次跳到最大高度 然后跳到最小高度,再跳到剩下的最大高度,再跳第二小高度,以此类推,直到跳完所有石头。
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1094 题意解读:贪心选择 解题思路: 贪心策略: 将纪念品按价格由小到大排序,优先一大、一小,如果价格之和不超限,则分为一组,如果超限,则大的单独分为一组, 重复以上过程,直到所有数据都遍历到,采用一头一尾双指针即可。
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1208 题意解读:就是一个部分背包问题,贪心模版题。 解题思路:优先选择单价低的牛奶即可。 100分代码: #include <bits/stdc++.h> using namespace std; const int
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5019 题意解读:最短时间内填满道路,连在一起的不为0的坑可以一起填 解题思路: 方法1:分治法 对于一段连续不同深度的坑,可以最多连续填的天数是最小深度 在填满最小深度之后,分别针对其左边和右边的区域再进行填充,这就是
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1478 题意解读:题目的本质是任务安排问题,有n件任务,每件任务耗时不同,在一定的时间内,如何安排任务使得完成的任务越多越好。 解题思路: 对于这类问题,贪心策略是优先完成容易的。 回到摘苹果问题,要优先摘耗费力气小的,
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1106 题意解读:如何删数,让剩下的数最小,贪心选择问题。 解题思路: 方法1:删数法 先看样例: 175438 4 第1次遍历:删掉7,剩下15438 第2次遍历:删掉5,剩下1438 第3次遍历:删掉4,剩下138
阅读全文
摘要:原题链接: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
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2392 题意解读:由于可以同时计算两道同一科的题目,只需要把某一科题目分两堆,使得两堆总时长之差最小,时长较大的一堆就是完成这一科的最短时间。 解题思路: 既然知道了要把一科题目分两堆,关键是如何分堆呢? 比较容易犯的错
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3799 题意解读:要选四根木棒拼成等边三角形,必然有两根长度相等,其余两根长度之和等于前两根 解题思路: 木棒总数最大100000,每根最长5000,因此通过枚举其中两根木棒的长度,计算出另外两根的长度,通过各个长度的木
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1149 题意解读:计算符合A+B=C时,火柴棍数量正好等于n,可以采用枚举A、B,然后计算出C,根据A、B、C计算出所有火柴棍数量,再加上4根加号、等号的,如果与n相等,即为一种合法等式。 解题思路: 题目的关键在于枚举
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1217 题意解读: 本题要找[a, b]范围内的所有回文质数,千万不要被题目提示所干扰,如果按照提示先产生各个长度的回文数,再依次判断是否是素数,程序写起来比较繁琐,需要根据a、b的长度,写8个判断是否产生1~8位回文数
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3654 题意解读:在r * c矩阵中,找连续k个.的总数。 解题思路: 本题直接枚举即可, 在每一行中,以每一列为起点,连续判断k个元素,如果全为'.',则方案数加1 在每一列中,以每一行为起点,连续判断k个元素,如果全
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3392 题意解读:此题枚举白、蓝、红所有可能的行数组合,依次逐行判断每个方格,是否需要染色,计算最少的染色次数即可。 解题思路: 总行数是n, 先考虑白色,第一行必是白色,最后一行必是红色,至少有一行蓝色,因此白色行数的
阅读全文