随笔分类 -  CSP-J复赛真题解析

摘要:原题链接:https://www.luogu.com.cn/problem/P1088 题意解读: 火星人的手指可以通过全排列来表示数字,全排列由小到大的顺序即为表示的数字大小,题目可以转化为: 给定按顺序全排列中的某一个排列,求往后数m个排列的内容。 解题思路: 此题与经典全排列问题的差异在于,需 阅读全文
posted @ 2024-05-23 11:07 hackerchef 阅读(149) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1087 题意解读:字符串作为根,左边一半作为左子树,右边一半作为右子树,递归构造数,并按FBI规则输出后续遍历结果。 解题思路: 按照题意,通过dfs来构造树,对于字符串str,提取左边一半递归构造左子树,提取右边一半递 阅读全文
posted @ 2024-05-23 11:06 hackerchef 阅读(97) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1086 题意解读:按照花生数从多到少去采摘花生,每次是否采下一株需要看剩余时间是否足够返回路边,够则剩余时间减掉采摘下一株所需时间,不够则直接返回路边。 解题思路: 样例模拟,如图所示,时间限制为21 按照花生数量将每棵 阅读全文
posted @ 2024-05-23 10:18 hackerchef 阅读(292) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1085 题意解读:找到两数之和大于8且两数之和最大值的位置 解题思路:不多说,送分题,直接模拟法即可 100分代码: #include <bits/stdc++.h> using namespace std; int a 阅读全文
posted @ 2024-05-23 09:18 hackerchef 阅读(34) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1045 题意解读: 要计算2p- 1的位数和最后500位,实际上只需要计算2p,两者位数一致,前者比后者个位减1即可,且个位肯定不会是0,比较容易处理。 解题思路: 一、朴素做法 如果直接采用高精度乘法计算2p,p最大3 阅读全文
posted @ 2024-05-22 18:45 hackerchef 阅读(148) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1044 题意解读:一组数入栈、出栈的方案数,如果了解卡特兰数,此题可以秒杀;如果不了解,也可以通过递归或者递推来解决 ;最次,可以通过DFS暴搜出方案数,当然对于n个数,一共有n次入栈、n次出栈,一共2n次,每次要么入栈 阅读全文
posted @ 2024-05-22 18:42 hackerchef 阅读(78) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1043 题意解读:将n个环形数分成任意m组,组内求和再%10、负数转正,组间相乘,求所有分组方案中得到结果的最小值和最大值。 解题思路: 比赛题的首要目的是上分!此题一看就是DP,但是苦苦思索了半天,想不清楚状态表示,那 阅读全文
posted @ 2024-05-22 17:57 hackerchef 阅读(125) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1042 题意解读: 分别针对11分制和21分制,输出每局比分。只需要判断一局的结束条件:得分高者如果达到11或者21,且比分间隔大于等于2分,则表示一局结束, 可开始下一局,用模拟法即可解决。 100分代码: #incl 阅读全文
posted @ 2024-05-22 11:06 hackerchef 阅读(120) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1002 题意解读:从A(0,0)点走到B(n,m)点,只能向右或者向下,C点以及其控制点不能走。 解题思路: 根据题意,此题要么递归(DFS),要么递推(动态规划) 先分析数据规模,最大从起点到终点要走40步,每个步有2 阅读全文
posted @ 2024-05-22 10:59 hackerchef 阅读(28) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1037 题意解读:一个长整数,有若干数字替换规则,计算可以转换成多少种不同的整数。 解题思路: 看题之后,第一感觉,是用DFS: 1、用字符串存储整数 2、用邻接表存储数字替换规则,因为一个数字可以替换成多个其他数字 3 阅读全文
posted @ 2024-05-22 10:58 hackerchef 阅读(108) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1036 题意解读:题目即要在n个数中,枚举出所有的子集,当子集中数字个数刚好为k时,求和,判断是否是素数。 解题思路: 方法一:二进制法 通过二进制法,可以枚举一个集合中所有元素“选”或者“不选”的情况,用二进制1表示选 阅读全文
posted @ 2024-05-21 18:41 hackerchef 阅读(122) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1035 题意解读:根据公式模拟法求解即可。 解题思路:枚举i,计算sum,如果sum > k,则输出i 100分代码: #include <bits/stdc++.h> using namespace std; int 阅读全文
posted @ 2024-05-21 18:40 hackerchef 阅读(77) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1049 题意解读:装尽可能多的物品,使得总体积越大越好,即剩余空间最小,还是一个01背包问题,物品的体积就是其价值。 解题思路: 01背包模版题,物品体积、价值相同,直接采用一维dp。 100分代码: #include 阅读全文
posted @ 2024-05-21 18:35 hackerchef 阅读(104) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1030 题意解读:已知中序、后序,求先序。 解题思路: 与洛谷题单指南-二叉树-P1827 [USACO3.4] 美国血统 American Heritage非常类似,不在介绍过程,直接给出代码。 100分代码: #in 阅读全文
posted @ 2024-05-21 18:10 hackerchef 阅读(35) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1029 题意解读:已知x,y,求有多少对p、q,使得p、q的最大公约数为x,最小公倍数为y。 解题思路: 枚举法即可。 枚举的对象:枚举p,且p必须是x的倍数,还有p <= y q的计算:q = x * y / p, q 阅读全文
posted @ 2024-05-21 18:09 hackerchef 阅读(49) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1028 题意解读:给定n,构造数列,可以用递归或者递推。 解题思路: 1、递归 定义count(n)返回数列的个数 n==1时,count(n) = 1 n!=1时,count(n) = 1 + count(1) + c 阅读全文
posted @ 2024-05-21 18:04 hackerchef 阅读(114) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1023 题意解读:给定商品单价和对应销量表,计算使得采用预期价格销售得到最大利润时的最小补贴或者税收。 解题思路: 1、样例模拟 31 28 130 30 120 31 110 -1 -1 15 政府预期价格:31 商品 阅读全文
posted @ 2024-05-21 17:56 hackerchef 阅读(213) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1022 题意解读:求解一元一次方程。 解题思路: 直接采用模拟法,对字符串进行解析 设x保存未知数字母 设lx保存"="左边的未知数系数,多个系数要累加 设l保存"="左边的整数,多个整数要累加 设rx保存"="右边的未 阅读全文
posted @ 2024-05-21 14:51 hackerchef 阅读(263) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1016 题意解读:用最少的加油费用到达另一个城市,中间有若干加油点,起点也可加油。 解题思路: 本题是一个贪心策略题: 枚举每一个加油点i: 1、初始加油点是起点 2、汽车能跑的最大距离范围内,找到下一个更便宜的加油点的 阅读全文
posted @ 2024-05-21 11:47 hackerchef 阅读(106) 评论(0) 推荐(0)
摘要:原题链接:https://www.luogu.com.cn/problem/P1015 题意解读:一个N进制数M,把M正序和M逆序相加,几次之后得到是数是回文数,如果超过30次还无法得到回文数,输出Impossible!。 解题思路: M最长100位,因此需要高精度,定义数组vector<int> 阅读全文
posted @ 2024-05-20 12:30 hackerchef 阅读(147) 评论(0) 推荐(0)