随笔分类 - CSP-J复赛真题解析
摘要:原题链接:https://www.luogu.com.cn/problem/P5018 题意解读:找到是对称二叉树的最大子树节点数。 解题思路: 1、先统计每一个节点为子树的节点数 int dfs1(int root) { if(root == -1) return 0; return cnt[ro
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5017 题意解读:先将问题进行抽象、建模。 设一条数轴,从左到右,每个点对应一个时刻,每个时刻可能有多个人到达,然后有若干个发车时刻,每两个发车时刻间隔必须>=m,每个人的等待时长就是到最近一个发车时刻的时间累加,计算所
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5016 题意解读:计算在哪一号兵营增加s2名士兵,使得龙虎双方势力相差最小。 解题思路: 1、先根据初始情况,计算龙、虎双方各自的势力,包括p1号兵营增加s1个士兵 2、在枚举在1~n号兵营增加s2个士兵时,龙、虎双方的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5015 题意解读:统计字母、数字的个数。 解题思路:直接枚举判断,对于库函数的熟练可以更加高效。 100分代码: #include <bits/stdc++.h> using namespace std; int mai
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3957 题意解读:有n个格子,每个格子有不同的距离和分数,从起点,每次可跳距离为d,用g金币后可跳距离范围可以变成max(d-g,1) ~ d+g, 求最小的g,使得可跳跃得分不少于k。 解题思路: 1、单调性分析: 如
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3956 题意解读:计算从(1,1)走到(m,m)的最小花费,有几个限定: 同色格子可以走,花费为0; 不同色格子可以走,花费为1; 有色格子可以走到无色格子,花费为2,且用将无色格子临时染色; 无色格子不能走到无色格子。
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3955 题意解读:给出n个图书编号,q个需求码,找到后缀与需求码匹配的最小图书编号,没有输出-1。 解题思路:先对图书编号排序,用枚举法遍历每一个图书编号,看后缀是否与需求码相同。 100分代码: #include <b
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3954 题意解读:按比例计算乘积。 解题思路:简单模拟。 100分代码: #include <bits/stdc++.h> using namespace std; int main() { int a, b, c; c
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2119 题意解读:在一组数里找出所有的Xa,Xb,Xc,Xd的组合,使得满足Xa<Xb<Xc<Xd, Xb-Xa=2(Xd-Xc), Xb-Xa<(Xc-Xb)/3,并统计出每个数作为A,B,C,D出现的次数。 解题思路
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2058 题意解读:计算24小时时间窗口内不同国家的数量,是队列的典型应用。 解题思路: 本题需要用到两个关键的数据结构:队列、数组 队列用来保存24小时内到达的船的时间,数组用来保存24小时内每个国家有多少人 每到一只船
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2010 题意解读:计算两个日期之间有多少个日期是回文。 解题思路: 如果通过枚举两个日期之间的所有日期,然后判断回文,则会有几个问题: 枚举数据规模在10^7级别,再加上对于日期加一天、判断回文等处理,有可能超时,而且对
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1909 题意解读:在多中包装的铅笔中选择一种,买够总数大于等于n只铅笔,计算选择哪一种花费最少,输出最少的钱数。 解题思路: 此题关键在于只选择一种包装来买,这样就枚举每一种就好了,否则就成了背包问题。 关键流程: 1、
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2672 题意解读:N家住户,每家住户与出入口距离是Si米,推销员每走1米疲劳值+1,向第i家住户推销疲劳值+Ai,推销员推销完原路返回出口,计算在向不同数量X的住户推销时,能达到的最大疲劳值。 解题思路: 本题是一种贪心
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2671 题意解读:找到所有符合条件的三元组,累加三元组的分数,结果对10007取模。 解题思路: 仔细读题,并分析数据规模,1~4个数据点可以通过O(n^2)复杂度解决,也就是枚举法。 1、枚举法 要求x < y < z
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2670 题意解读:模拟法即可。对于每一个格子,如果是地雷则直接输出*,否则计算周围有几个地雷,再输出。 100分代码: #include <bits/stdc++.h> using namespace std; cons
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2669 题意解读:每连续i(1,2,3.....)天获得i枚金币,k天一共获得多少金币。 解题思路: 直接枚举连续的天数i,如果当前剩余的k天>=i,则金币累加i * i,同时剩余天数k = k - i 最后,要把剩余k
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2258 题意解读:从矩阵中挑选出子矩阵(行、列都不一定连续),计算相邻元素差的绝对值之和最小值。 解题思路: 1、DFS+DFS 看到题目之后,直觉上应该是一个DP问题,但是考试中不一定能想到DP转移方程,不要放弃,可以
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2239 题意解读:计算螺旋矩阵的第i行j列的数。 解题思路: 1、模拟法 按照螺旋矩阵的数字增长方向,依次枚举 定义四个方向(右、下、左、上)的坐标变换int dx[4]={0,1,0,-1},dy[4]={1,0,-1
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2118 题意解读:给定a、b,将其简化为a'/b',a'、b'互质,且a'/b'>=a/b,a'/b'-a/b最小 解题思路: 枚举a'、b'的所有可能组合,因为都小于l,所以枚举时间可控 判断a'、b'的最大公约数是否
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2141 题意解读:在一个互不相同的数组中,枚举两个不同数之和,和也在数组中,统计不同的和的个数。 解题思路: 用数组、哈希表分别记录每一个数 枚举每两个不同的数,求和,如果和在哈希表中也存在,则ans++,并且在哈希表中
阅读全文