- 博客(207)
- 资源 (4)
- 收藏
- 关注
原创 2025圣诞节
今天圣诞节,所以还是写一下最近的状态吧,最近一直在忙着做自己的述职报告,改了又改,终于做出一版比较满意的报告啦,整整加班了2个星期,终于在上周四汇报完啦,这一年做了很多事情,但是汇报的时候还是觉得没有很好,作为一个职场人,汇报能力的好坏真的很重要,所以不仅要加强我自己写代码的能力更好加强我的汇报能力。每天都在花钱和花钱的路上,刷卡力一流。当然这段时间也还在学习新的东西,比如在电脑上部署好claude,让我的工作学习到很多东西,同时给我提升了很多效率,要用好它真的还有点难度,继续加油吧。
2025-12-25 21:51:56
63
原创 P2695 骑士的工作
你作为一个村的村长,保卫村庄是理所当然的了。今天,村庄里来了一只恶龙,他有n个头,恶龙到处杀人放火。你着急了。不过天无绝人之路,现在来了一个骑士团。里面有m位成员(往下看)。
2025-11-26 20:48:06
310
原创 P2242 公路维修问题
由于长期没有得到维修,A 国的高速公路上出现了n个坑。为了尽快填补好这n个坑,A 国决定对m处地段采取交通管制。为了求解方便,假设 A 国的高速公路只有一条,而且是笔直的。现在给出n个坑的位置,请你计算,最少要对多远的路段实施交通管制?
2025-11-24 21:47:37
288
原创 P2240 【深基12.例1】部分背包问题
阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有NN≤100堆金币,第i堆金币的总重量和总价值分别是mivi1≤mivi≤100。阿里巴巴有一个承重量为TT≤1000的背包,但并不一定有办法将全部的金币都装进去。他想装走尽可能多价值的金币。所有金币都可以随意分割,分割完的金币重量价值比(也就是单位价格)不变。请问阿里巴巴最多可以拿走多少价值的金币?
2025-11-24 20:24:24
369
原创 P2095 营养膳食
Mr.L 正在完成自己的增肥计划。为了增肥,Mr.L 希望吃到更多的脂肪。然而也不能只吃高脂肪食品,那样的话就会导致缺少其他营养。Mr.L 通过研究发现:真正的营养膳食规定某类食品不宜一次性吃超过若干份。比如就一顿饭来说,肉类不宜吃超过1份,鱼类不宜吃超过1份,蛋类不宜吃超过1份,蔬菜类不宜吃超过2份。Mr.L 想要在营养膳食的情况下吃到更多的脂肪,当然 Mr.L 的食量也是有限的。
2025-11-22 21:06:42
555
原创 P1610 鸿山洞的灯
已知n盏灯以及每盏灯的位置pipi均不相等,当两盏灯之间的距离小于dist时,若这个安全距离里面还有灯是亮着时,就可以关掉这些灯(即若第i−1盏与第i1盏的距离≤dist,则可以关掉第i盏)。求在保证洞里的光线是充足的情况下,一段区域里能删除的灯的最大值。距离洞口最近和最远的两盏灯必须是亮着。
2025-11-21 23:03:46
307
原创 P1589 泥泞路
摘要:本文解决了一个关于用木板覆盖泥泞路的问题。给定n段泥泞路和长度为L的木板,要求计算最少需要的木板数。通过将泥泞路按起点排序,并用变量pos记录当前覆盖位置,依次处理每段路。当pos小于路段终点时,增加木板直到完全覆盖。代码使用贪心算法,时间复杂度O(nlogn)。
2025-11-20 22:52:45
356
原创 P1478 陶陶摘苹果(升级版)
这篇题解介绍了P1478陶陶摘苹果(升级版)的解题思路。题目要求在有限力气s下,陶陶最多能摘多少个苹果。关键点是对苹果按所需力气升序排序,优先摘取耗力少的可达苹果(高度≤a+b)。使用结构体存储苹果信息,通过sort函数和自定义比较函数实现排序。核心算法是遍历排序后的苹果列表,在力气允许范围内累加可摘取的苹果数。代码简短高效,时间复杂度主要取决于排序的O(nlogn)。解题关键在于贪心策略,优先处理耗力少的苹果。
2025-11-18 20:52:15
258
原创 P1223 排队接水
摘要:题目要求安排n个人接水顺序,使平均等待时间最小。解题策略是将接水时间短的人排在前面,使用结构体存储每个人的编号和接水时间。对结构体按接水时间升序排序后,计算每个人的等待时间(不包括自身接水时间),最后输出排队顺序和精确到小数点后两位的平均等待时间。注意使用long long类型防止数据溢出。关键点包括结构体排序和等待时间的正确计算。
2025-11-18 12:19:48
302
原创 P1190 [NOIP 2010 普及组] 接水问题
学校里有一个水房,水房里一共装有m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。现在有n名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n编号,i号同学的接水量为wi。接水开始时,1到m号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j完成其接水量要求wj后,下一名排队等候接水的同学k马上接替j同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j同学第x秒结束时完成接水,则k同学第x1。
2025-11-17 19:56:09
760
原创 P1109 学生分组
摘要:题目要求将n组学生人数调整到[L,R]范围内,通过移动学生实现。首先判断总学生数是否满足均值在[L,R]内,否则输出-1。若有解,计算低于L和高于R的学生总数,取较大值作为最少交换次数。算法时间复杂度O(n),适用于n≤50的数据规模。
2025-11-14 22:40:14
201
原创 P1115 最大子段和
本文介绍了最大子段和问题的两种解法。第一种使用前缀和的双重循环方法,时间复杂度O(n²),在n较大时会超时,仅能通过40%测试用例。第二种优化方法采用动态规划思想,维护当前连续子段和,当和小于0时重置,时间复杂度O(n),能高效处理大规模数据。作者分享了解题过程中的思考迭代,从最初的前缀和思路到最终的动态规划优化方案,并记录了个人生病期间坚持解题的经历。两种实现代码均已给出,后者能够AC本题,时间复杂度从O(n²)优化到O(n)。
2025-11-12 22:20:49
204
原创 P1094 [NOIP 2007 普及组] 纪念品分组
摘要:题目要求将纪念品分组,每组最多2件且价格和不超过w。解法是先将纪念品排序,然后采用贪心策略,用低价和高价纪念品两两配对,超过w则单独分组。通过标记已配对物品,统计最少分组数。
2025-11-11 21:53:15
374
原创 P14359 [CSP-J 2025] 异或和 / xor(官方数据)
摘要:题目要求在一个长度为n的非负整数序列中,选择尽可能多的不相交区间,使每个区间的异或和为k。初步思路是先计算前缀异或和,然后通过双重循环找出所有满足条件的区间,最后用贪心算法处理区间不重叠问题。但由于时间复杂度较高,当前代码在洛谷仅得60分,部分测试用例超时。后续需优化算法以提高效率,如使用哈希表优化查找过程。解题过程强调了对异或运算的理解和区间处理技巧的重要性。
2025-11-11 11:48:16
931
原创 1587 - 连续非素数的最大长度
摘要:题目要求找出1到n中连续非素数的最大长度。解题思路是遍历1到n的每个数,当遇到非素数时计数器+1,若下一个数是素数则中断计数,并将当前计数与最大值比较后清零。关键点在于:1)熟练编写素数判断函数;2)及时清零计数器;3)正确判断连续中断条件。AC代码使用自定义Prime函数判断素数,并在遍历过程中维护计数器和最大值变量,最后输出结果。时间复杂度为O(n√n)。
2025-11-08 20:49:29
180
原创 2025年CSP-J第2题P14358 [CSP-J 2025] 座位
摘要:本文介绍了CSP-J 2025第二轮考试的座位分配问题。考生成绩按蛇形顺序排列成n行m列,奇数列从上到下,偶数列从下到上。解题思路是将成绩排序后填入二维数组,再定位特定考生的座位。AC代码使用sort函数降序排序,并按照蛇形规律填充数组,最后匹配输出目标考生的列行位置。
2025-11-07 23:27:00
954
原创 P14357 [CSP-J 2025] 拼数 / number(官方数据)
摘要:本文讨论了一道CSP-J编程题目,要求从字符串中提取数字并组成最大正整数。作者分享了处理思路:使用桶排序存储数字频率,按降序输出数字。文章包含题目解析、关键代码片段(字符转整数、降序输出)和AC代码示例。题目强调字符串处理和算法基础,适合编程初学者练习基本功。
2025-11-06 22:25:08
615
原创 1023 - 判断素数
3)我们先假设这个数是,就创建一个bool类型的变量f,赋初值true表示先假设这个数n是素数,然后在2~n-1之间找第3个因数,如果找到了,那么就修改f的值为false,直接跳出循环,循环结束去判断f的值,如果是true那么就输出T,否则输出F。4)进一步分析,拿到1~n这n个数可以利用for循环实现,可以用一个cnt变量计数,如果循环还没有结束,cnt就已经大于等于3,那就表明不是素数,可以提前结束循环,如果循环正常结束,cnt的值为2,那就表示这个数是素数。是的话输出 T,不是的话输出 F。
2024-09-25 22:20:24
829
原创 1073 - 沙漏
赵老师最近在编一个操作系统,正好编到鼠标的繁忙状态,需要一个沙漏符号,正好大家都在学 C++ ,你的任务就是帮赵老师编一个程序打印一个沙漏符号。2)分析沙漏图案,发现是一个对称图形,打印这种图案我们需要先分为上下两部分,这里可以把第3行划分到上面部分也可以划分到下面部分。1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和星号组成。一个整数 n ,符号的行数(保证 n 是大于 1 的奇数)。3)理清楚上半部分的行数:n/2+1,下半部分的行数:n/2。沙漏符号,使用 * 打印。
2024-09-24 18:47:30
729
原创 1072 - 字符图形8-数字三角
2)这里每行也是先打印空格,和之前图案不同,这里是数字,但是每行的数字个数和我们之前做的星号相同,这里每行的数字都是循环变量j的变化值。1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和数字组成。一个整数( 0<n<10 )。输入一个整数打印字符图形。
2024-09-24 18:32:17
599
原创 1071 - 字符图形7-星号菱形
3)观察图案,可以把图案分成上下两部分进行打印,这里可以把第3行和前面2行看作一个图案也可以把第3行和最后2行看作一个图案。一个字符图形,如输入 2 ,则产生 5 行的菱形(为方便找规律,这里将空格用 □ 替代,实际输出,请输出空格)。1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和星号组成。2)这个题的图案和我们之前做的图案题目有些不一样,需要打印的是2*n+1行图案。输入一个整数 n ,请打印出 n∗2+1 行的字符图形。一个整数(0<n<10)。
2024-09-24 16:59:09
1020
原创 1070 - 字符图形6-星号倒三角
1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和星号组成。2)打印这种n行m列图案,需要先找到规律。一个整数(0<n<10 )。输入一个整数打印字符图形。
2024-09-24 16:43:49
423
原创 1069 - 字符图形5-星号梯形
1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由不同的空格和星号组成。2)打印n行m列的图案,应该使用嵌套循环,可以用循环变量i表示行数,用循环变量j表示列数。输出中的 □ 代表空格,× 代表 ∗。一个整数( 0<n<10)。输入一个整数打印字符图形。
2024-09-24 15:00:10
508
原创 1068 - 字符图形4-星号正三角
一个字符图形,例如,输入 3 ,则输出图形如下:(为方便统计,□ 代表空格, × 代表 ∗)1)先明确输入输出有几个,这里输入只有1个,是int类型,输出是每行不同的空格和星号。3)n行m列图案使用嵌套循环实现,可以用循环变量i表示行数,循环变量j表示列数。一个整数(0<n<10 )。输入一个整数打印字符图形。
2024-09-24 14:49:25
706
原创 1067 - 字符图形3-平行四边形
1)先明确输入输出有几个,这里输入有1个变量,是int类型,每行输出是由空格和星号组成。注意:第一行没有空格,第二行有 1 个空格,第 3 行有2 个空格,以此类推!输入一个整数打印字符图形。一个整数(0<n<10)。
2024-09-23 17:51:24
435
原创 1066 - 字符图形2-星号直角
1)先明确输入输出有几个,是什么类型,这里输入只有1个是int类型,输出是每行打印不同数量的星号。一个整数( 0<n<10 )。3)使用嵌套循环实现。
2024-09-23 17:41:01
414
原创 1065 - 字符图形1-星号矩形
2)分析题意,题目已经很明确是n行n列星号,需要用到嵌套循环实现,需要注意每行打印星号结束之后要换行。1)先明确有几个输入和输出,这里输入只有1个,是int类型,输出是每行n个星号。一个整数 n(0<n<10)。
2024-09-23 17:33:49
334
原创 1008 - 字符图形9-数字正三角
3)找到规律之后,发现这种图案都是n行m列,需要用到嵌套循环实现,需要注意每行打印完数字之后需要进行换行进入下一行。1)先明确输入输出有几个,这里输入只有1个,是int类型,第n行输出有n个数字。输入一个整数打印字符图形。一个整数(0<n<10)。
2024-09-23 17:28:00
510
原创 1033 - 判断奇偶数
2)判断一个数是否为偶数,只需要看这个数对2取余是否为0,如果为0就是偶数,如果不为0就是奇数,这里需要用双分支判断结构。1)明确输入输出有几个,这里输入有1个,是int类型,输出有1个,是字符串类型。输入只有一行,包括 1 个整数(该整数在 1∼10000 的范围内)。输入一个整数,判断是否为偶数。是输出 y e s ,否则输出n o。(注意输出格式,具体请看下方提示)。3)是偶数就输出y e s ,是奇数就输出n o。
2024-09-21 20:52:50
389
原创 1029 - 倒序输出一个四位整数
2)这个题主要是拆位运算,我们需要明白例子中的4567的由来,4567 = 4 * 1000 + 5* 100 + 6 * 10 +7,需要得到每一个位置上的数。4)得到每一个位置上的数,再逆序输出(千位变成个位,百位变成十位,十位变成百位,个位变成千位)1)明确输入输出有几个,这里输入有1个,是int类型,输出有1个,也是int类型。百位上的数:n / 100 % 10 或者 n / 1000 / 100。十位上的数:n /10 % 10 或者 n % 100 / 10。千位上的数:n / 1000。
2024-09-21 20:46:25
504
原创 1020 - 算算和是多少
2)这个题主要是拆位运算,需要思考如何得到这个3位数的每一个位置上的数,个位上的数 是 用n % 10可以得到,十位上的数不能一步直接得到,需要把十位上的数和百位组合(n/10%10)或者十位上的数和个位上的数组合(n%100/10),百位上的数是用n/100得到。输入一个三位正整数,然后与它倒过来的数相加,输出和。3)得到每一个位置上的数之后就可以把它逆序,原来的百位变成个位,原来的十位还是十位,原来的个位变成百位。1)明确输入输出有几个,这里输入有1个,是int类型,输出有1个也是int类型。
2024-09-21 20:37:41
374
原创 1019 - 求1!+2!+...+N!
3)分析阶乘的实现方法,n的阶乘等于n * n-1 * n-2 * …* 2 * 1,这里发现1~n是范围,可以用for循环实现。4)每个数的阶乘是一个for循环,要把1 ~ n这个范围的数都进行阶乘,1~n也是一个for循环,所以这里应该要用循环嵌套实现。5)加和变量需要初始化为0,每一个数存放的阶乘结果应该用另一个变量s实现,在进入下一个数的阶乘开始之前需要把s初始化为1。1)确定输入输出有几个,是什么类型,这里输入只有1个是int类型,输出也只有1个,是int类型。
2024-09-20 22:18:13
1213
原创 1018 - 三角形类别
若不能输出 no。若构成三角形,进一步判断它们构的是:锐角三角形或直角三角形或钝角三角形。3)输入的3条边不一定能保证第一条边是最短的,第二条边是第二长的,第三条边是最长的,所以我们需要对3条边进行排序,使用分支语句进行排序。2)确定选用什么结构,这里需要我们先判断能否构成三角形,应该选用双分支结构,在能构成三角形的情况下再进一步分析属于哪种三角形。1)明确输入输出有几个,这里输入有3个,都是int类型,输出有1个,是字符串类型。两个短边的平方和小于一个长边的平方时为钝角三角形。
2024-09-20 21:48:23
565
原创 1017 - 求零件个数
有一堆 100 多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。请你编一个程序计算出这堆零件至少是多少个?2)分析题意,可以得出循环范围是100~199之间,知道范围用for循环实现。3)三个三个数,剩二个表示的含义是 当前这个数对3取余得2,以此类推。1)明确输入输出有几个,这里输入没有,输出有1个,是int类型。
2024-09-20 21:32:08
412
原创 1016 - 买小猫小狗
3)这里可以分析出小狗的只数范围是1 ~ (x-b)/a,知道范围我们应该使用for循环会比较方便一点,判断买i只小狗花了 i * a元,剩下的钱x-i*a是否能买整数只的小猫,如果能买整数只那就找到一种组合方案,方案数加一。2)题目要求猫和狗的数量至少要1只,一共花费了x元。小狗最少1只,最多能买(x-b)/a只,为什么要x-b呢?1)明确输入输出有几个,这里输入有3个都是int类型,输出表示方案数,也是int类型,统计个数一定要初始化为0。
2024-09-20 21:28:06
770
原创 1015 - 鸡兔同笼问题
1)从题意可以得出,鸡和兔的只数一共是50只,鸡最少有1只,最多有49只,所以鸡的循环范围是1 ~ 49,这里可以用for循环实现。鸡兔同笼问题:一个笼子里面有鸡若干只,兔若干只。共有头50 个,共有腿 160 条。2)当鸡有i只时,脚的数量为2*i,兔子的数量为50-i,脚的数量为(50-i)*4。3)判断i只鸡和(50-i)只兔的总脚数是否为160,如果等于160就是符合题意的。鸡的只数 兔的只数。
2024-09-19 23:34:32
1047
原创 1014 - 编程求1+1/2+1/3+...+1/n
1)明确输入和输出的个数,这里输入只有一个,是int型,输出只有一个,表示求和,是double类型。2)观察式子,可以发现分子都是1,分母是从1~n之间的n个数,这里从n ~ m应该想到用for循环。3)需要注意整数和整数运算只能得到整数,这里需要得到小数可以把分子的1改为1.0,不影响算式的结果。输出只有一行(这意味着末尾有一个回车符号),包括 1 个实数。(保留 3 位小数)。输入一行,只有一个整数n(1≤n≤200)。编程求 1+1/2+1/3+⋯+1/n。注:求和应该给变量初始化为0。
2024-09-19 21:51:51
1835
原创 1007 - 统计大写英文字母的个数
1)确定输入和输出有几个变量,是什么数据类型,这里分析输入是一个字符数组变量,字符数组长度不超过80,在创建这个数组的时候可以适当多出10个空间。输出表示个数,即整数类型,需要初始化为0;2)字符数组在读入空格的时候,不能直接使用cin,而是使用cin.getline()。需要知道这个读入的用法。3)统计大写字母需要遍历整个数组,掌握判断是否为大写字母的方法。算算以 ‘.’ 结束的一串字符中含有多少个大写的英文字母。输入一串字符(长度不超过80 ),以 ‘.’ 结束。输出一行,即这串字符中大写字母的个数。
2024-09-19 21:41:36
598
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅