随笔分类 - CSP-J复赛真题解析
摘要:原题链接:https://www.luogu.com.cn/problem/P1070 题意解读:1~n个环形机器人工厂,相邻工厂之间的道路是1~n,每个时刻可以从任意工厂购买机器人,走不超过p时间,不同工厂购买机器人花费不同的金币,不同时刻走到不同道路也能得到不同的金币,问一共m时间,最多可以得到
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1069 题意解读:一个数s代表细胞经过一天分裂的个数,则经过t天后个数为st,要计算经过几天后能整除m1m2,也就是st % m1m2 == 0,有多个s,要计算天数最少就可以满足条件的。 解题思路: 直接求st % m
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1068 题意解读:根据题意,用模拟法,求出分数线所在位置,然后计算分数线,最后输出结果即可。 解题思路: 1、分数线是按从大到小排名来设定,因此数据因为按照分数从大到小排序,如果分数相同,需要安装报名号从小到大排序 2、
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1067 题意解读: 模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点: 1、系数为0时不输出多项式 2、第一个符号,只有负号才输出 3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数 4、次数
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1058 题意解读:在m*n的平面上,输出若干个立方体,每一个格子可以有高度不同的多个立方体。 解题思路: 此题咋一看来,无从下手,仔细分析,其实一道模拟题。 如何模拟?我们一起来解决一下几个关键问题: 1、如何画图? 要
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1057 题意解读:n个人围一圈,从1开始传球m次,每次可以往左或右传,计算球再次传给1的方案数。 解题思路: 求方案数,通常就是DP问题,此题DP状态并不难想,如果实在不会,也可以通过DFS暴搜得部分分。 1、DFS 6
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1056 题意解读:计算k行、l列通道的位置,使得上课讲话的人最少。 解题思路:贪心法。 贪心策略:通道应该优先设置在讲话人数最多的地方。 1、枚举所有交头接耳的同学(x,y) (p,q) 2、如果在同一行,即x==p,则
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1055 题意解读:验证ISBN最后一位是否正确。 解题思路:直接模拟,不多说,上代码。 100分代码: #include <bits/stdc++.h> using namespace std; int main() {
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1096 题意解读:汉诺双塔的移动次数,与经典汉诺塔的区间在于同一个尺寸盘子有两个。 解题思路: 可以直接用经典汉诺塔方法来计算,双塔的结果就最终乘以2即可。 首先想到的是递归,但是由于数据量n最大200,递归会超时,但是
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1095 题意解读:在有限的时间内,通过跑步或者闪烁两种方式,能跑出的最远距离是多少,以及是否能跑出出口。 解题思路: 1、贪心法 每一秒钟,都有两种选择:跑步(17米)、闪烁(60米,前提是蓝够10点,否则等待1s恢复4
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1094 题意解读:贪心选择 解题思路: 贪心策略: 将纪念品按价格由小到大排序,优先一大、一小,如果价格之和不超限,则分为一组,如果超限,则大的单独分为一组, 重复以上过程,直到所有数据都遍历到,采用一头一尾双指针即可。
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1093 题意解读:本题考察排序,根据题意,先按总分从大到小排,再按语文从大到小排,以上都相同则按学号从小到大排。 100分代码: #include <bits/stdc++.h> using namespace std;
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1062 题意解读:给定一个序列,计算第N个。 解题思路: 仔细观察序列:1,3,4,9,10,12,13,… 再看展开式:30,31,30+31,32,30+32,31+32,30+31+32,不正是一个3进制数的计算公
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1061 题意解读:从编号s~t的字母从挑w个,组成一种特殊的数字,数字里字母都是升序的,给定初始数字,要计算后5个。 解题思路: 1、模拟法 模拟样例: 2 10 5 有效字母范围:b,c,d,e,f,g,h,i,j 初
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1060 题意解读:01背包问题,背包体积是预算限制,物品的价值是价格与重要度的乘积,计算在一定体积限制下的最大价值。 解题思路: 读入数据时,将价格作为体积,价格*重要度作为价值,然后使用一维01背包模版即可。 100分
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1059 题意解读:此题主要做两件事:排序+去重,用计数排序即可解决,直接给出代码。 100分代码: #include <bits/stdc++.h> using namespace std; const int N =
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1050 题意解读:对于一个长达100为的整数n,计算在n的t次幂后,其后k位出现和初始情况一样,求最小的t,也就是循环长度。 解题思路: 首先,看到数据规模,此题肯定是高精度; 其次,如果直接采用模拟法,进行n*n,取后
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1048 题意解读:在有限的时间内,采集到最大价值的草药,实际上是01背包问题,这里的总时间就是背包的体积。 解题思路: 设v[]表示每株草药的时间, w[]表示每株草药的价值, dp[i][j]表示采前i株草药在时间j内
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1047 题意解读:0~l距离,每米一个点,包括两端,给定若干个区间,将区间内的点移除,最后剩下多个个点。 解题思路: 本题给出两种方法 1、本题数据规模不大,可以直接通过hash数组来处理 2、拓展一下,如果数据规模达到
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1046 题意解读:30+伸手的高度,能够得着几个苹果。 解题思路:直接模拟。 100分代码: #include <bits/stdc++.h> using namespace std; int a[15], h, ans
阅读全文