随笔分类 - 洛谷官方题单
摘要:原题链接: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, 先考虑白色,第一行必是白色,最后一行必是红色,至少有一行蓝色,因此白色行数的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1088 题意解读: 火星人的手指可以通过全排列来表示数字,全排列由小到大的顺序即为表示的数字大小,题目可以转化为: 给定按顺序全排列中的某一个排列,求往后数m个排列的内容。 解题思路: 此题与经典全排列问题的差异在于,需
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1706 题意解读:n个数全排列问题,本质上,给定n个空位,枚举每个能填入空位的数,依次填入,每个数只能填一次。 解题思路: 如何填入n个数呢,可以借助于递归,流程如下: dfs(填入第k个数) { 如果已经填满n个数 输
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1157 题意解读:在1~n的数中挑选r个,有多少种组合,与P1036类似,有两种做法:二进制法、DFS,下面给出DFS版的代码。 100分代码: #include <bits/stdc++.h> using namesp
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1036 题意解读:题目即要在n个数中,枚举出所有的子集,当子集中数字个数刚好为k时,求和,判断是否是素数。 解题思路: 方法一:二进制法 通过二进制法,可以枚举一个集合中所有元素“选”或者“不选”的情况,用二进制1表示选
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1618 题意解读:枚举所有三位数的组合情况,判断是否符合比例。 解题思路: 方法一:枚举第一个数 根据题意,目的是寻找三个符合比例的三位数,可以直接枚举第一个,最小是123,最大是987 设第一个数为x,三个数的比例关系
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2089 题意解读:枚举所有情况,记录符合美味程度要求的即可。 解题思路: 有两种枚举方法:循环枚举、DFS暴搜 很显然,循环枚举需要十重循环,代码过于丑陋,下面只介绍DFS的方法: 只需要一个大小为10的数组记录某一种调
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2241 题意解读:要在整个n*m区域计算正方形和长方形的个数,枚举法即可。 解题思路: 此题枚举的对象是矩形的高i和宽j,高的范围[1, n],宽的范围[1, m],然后计算在n * m区域内有多少个i * j,i==j
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1012 题意解读:通过某种合理的排序方式,使得排序后的数字连在一起最大。 解题思路: 此题关键在于排序,对于两个数字,哪个数字应该排在前面呢? 1、思考误区 很容易想到,给定两个数abcd、xyz,先比较第一位a和x,谁
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1104 题意解读:将学生按照年龄由大到小排序,如果年龄相同,后输入的排在前面,输出排序后的学生姓名。 解题思路: 此题是一个排序常规题,年龄大排在前说明年、月、日越小越在前面,核心的排序思路如下: 1、如果年份不同,按年
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5143 题意解读:给出一系列的点,按某种顺序经过所有点,计算距离。 解题思路: 如果小学生,可能对于三维坐标距离有些陌生,没关系,题目已经给出了计算公式,直接套公式即可,关键步骤如下: 1、读取所有坐标点 2、按高度值从
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1068 题意解读:根据题意,用模拟法,求出分数线所在位置,然后计算分数线,最后输出结果即可。 解题思路: 1、分数线是按从大到小排名来设定,因此数据因为按照分数从大到小排序,如果分数相同,需要安装报名号从小到大排序 2、
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1152 题意解读:要判断相邻数差的绝对值是否覆盖1~n-1,只需遍历相邻两数之差,借助数组标记差的绝对值是否存在,然后遍历数组即可。 解题思路: 此题有两个注意点: 1、数值要用long long 2、计算差值绝对值后,
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1116 题意解读:由于只能交换相邻的两节车厢,因此只能采用冒泡排序法,记录冒泡排序过程中交换的次数即可。 100分代码: #include <bits/stdc++.h> using namespace std; con
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2676 题意解读:要使能够到书架顶的牛数量最少,优先选高的牛即可,直到总身高超过书架高度,简单的排序+贪心,下面给出代码。 100分代码: #include <bits/stdc++.h> using namespace
阅读全文