![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CCF-CSP
文章平均质量分 50
周哈里窗的编程
这个作者很懒,什么都没留下…
展开
-
CSP-CCF 201412-2 Z字形扫描
这个题目花了我好长时间,原先打算硬算,但是那样的话就太太太太复杂了,然后静下心来找规律,还真是找到了一些,虽然也挺复杂的,但是比硬解要好些。tip:要擅长找规律、静下心来找规律。原创 2024-08-24 09:45:46 · 411 阅读 · 0 评论 -
CSP-CCF 201409-2 画图
图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。接下来n行,每行4个非负整数,分别表示要画的矩形的左下角的横坐标与纵坐标,以及右上角的横坐标与纵坐标。输入的第一行包含一个整数n,表示要画的矩形的个数。输出一个整数,表示有多少个单位的面积被涂上颜色。原创 2024-08-23 09:24:41 · 245 阅读 · 0 评论 -
CSP-CCF 201403-2 窗口
当看到这一题的时候,首先想到的是数组,但是又觉得数组交换起来很麻烦,然后重新复习了一下链表,使用链表来做。但是后来发现使用数组其实也没那么麻烦。原创 2024-08-23 08:36:51 · 584 阅读 · 0 评论 -
CSP-CCF 201312-2 ISBN号码
实用库/函数之类型转换-CSDN博客实用库/函数之string的用法-CSDN博客3.依然是那句话:细节,细节,一定要注重细节!!!原创 2024-08-22 08:55:10 · 698 阅读 · 0 评论 -
CSP-CCF 202312-1 仓库规划
刚开始写依然是因为考虑问题不全面,写错了第二个for循环i的初始条件,脑子抽了以为是当前行与后一行进行比较,结果当然不对。应该是当前行与所有的行即所有仓库点进行比较(包括自己)。原创 2024-08-21 08:20:01 · 197 阅读 · 0 评论 -
CSP-CCF 202309-1坐标变换(其一)
tips:不能一边输入一边输出,那样就变成输入一行输出一行了,应该先输入再输出。原创 2024-08-21 08:19:37 · 208 阅读 · 0 评论 -
CSP-CCF 202305-1 重复局面
国际象棋每一个局面可以用大小为 8×8 的字符数组来表示,其中每一位对应棋盘上的一个格子。六种棋子王、后、车、象、马、兵分别用字母 k、q、r、b、n、p 表示,其中大写字母对应白方、小写字母对应黑方。接下来 8×n 行,依次输入第 1 到第 n 步棋后的局面。具体来说每行包含一个长度为 8 的字符串,每 8 行字符串共 64 个字符对应一个局面。第 6、7 步后的局面分别与第 2、3 步后的局面相同。第 8 步后的局面与上图相对应。输出共 n 行,每行一个整数,表示该局面是第几次出现。原创 2024-08-20 22:18:37 · 813 阅读 · 0 评论 -
CSP-CCF 202303-1 田地丈量
本题看似简单,但是情况太多了,如果盲目地写,以我的能力写不出来,也花了我很长很长时间。每块田地可视为平面直角坐标系下的一块矩形区域,由左下角坐标 (𝑥1,𝑦1) 和右上角坐标 (𝑥2,𝑦2) 唯一确定,且满足 𝑥1<𝑥2、𝑦1<𝑦2。方法二:方法1的简化,发现规律:长=min(x2,a)-max(x1,0),宽=min(y2,b)-max(y1,0),但是注意会有小于0的情况,即没有重叠部分。接下来 𝑛 行,每行包含空格分隔的四个整数 𝑥1、𝑦1、𝑥2 和 𝑦2,表示一块田地的位置。输入共 𝑛+1 行。原创 2024-08-20 22:18:10 · 553 阅读 · 0 评论 -
CSP-CCF 202212-1 现值计算
tip:认真看样例说明,将其看懂很关键,切不可忽略掉它!原创 2024-08-19 21:44:14 · 167 阅读 · 0 评论 -
CSP-CCF 202209-1 如此编码
已知某次测验包含 n 道单项选择题,其中第 i 题(1≤i≤n)有 ai 个选项,正确选项为 bi,满足 ai≥2 且 0≤bi<ai。比如说,ai=4 表示第 i 题有 4 个选项,此时正确选项 bi 的取值一定是 0、1、2、3 其中之一。全部的测试数据满足:1≤n≤20,ai≥2 且 cn≤109(根据题目描述中的定义 cn 表示全部 ai 的乘积)。输出仅一行,包含用空格分隔的 n 个整数 b1,b2,⋯,bn,依次表示每道选择题的正确选项。首先定义一个辅助数组 ci,表示数组 ai 的前缀乘积。原创 2024-08-19 21:43:34 · 279 阅读 · 0 评论 -
CSP-CCF 202206-1 归一化处理
不要被样例里调输出吓到,按部就班求、写代码即可。原创 2024-08-18 08:50:17 · 339 阅读 · 0 评论 -
CSP-CCF 202203-1 未初始化警告
i <= k;//不写这个的话,if条件就改为if (a[y] == 0&&y!num++;a[x] = 1;//或者写成a[x]++;return 0;bool b[N];i <= k;int x, y;//if (x)等价于if (x!=0)、if (!x)等价于if (x==0)if(!原创 2024-08-18 08:49:35 · 442 阅读 · 0 评论 -
CSP-CCF 202112-1 序列查询
【代码】CSP-CCF 202112-1 序列查询。原创 2024-08-17 09:41:55 · 296 阅读 · 0 评论 -
CSP-CCF 202109-1 数组推导
原因依然在于没有认真审题,题目已经说B的范围在0—10的5次方,所以当当前数和前一个数相等时,该数的最小值应该是0,而不是B[1],但是我错误的认为最小值是B[1],样例是通过了,但如果B[1]不是0且后面有重复数的时候,结果就不对了。依然是:审题要仔细,不放过每一个细节,真正弄懂题意,考虑问题要全面,不要再犯低级错误了!如果不是大于前一个值或者说与前一个值相等,当前值的最小值就是0,最大值就是本身。否则,最小值还是本身。原创 2024-08-17 09:40:37 · 296 阅读 · 0 评论 -
CSP-CCF 202104-1 灰度直方图
思路:用一个二维数组和一个一维数组、以及三个嵌套的for循环即可。原创 2024-08-16 08:06:57 · 269 阅读 · 0 评论 -
CSP-CCF 202012-1 期末预测之安全指数
刚开始看到题目被没见过的ReLU吓到了,以为会很难,认真读懂题目后,感觉应该是我这些天做过的算最简单的了。所以说:不要被没见过的新鲜事物吓到,要迎难而上!原创 2024-08-16 08:05:29 · 343 阅读 · 0 评论 -
CSP-CCF 202009-1 检测点查询
本题我的思路、代码一开始是对的,但是这道题目仍然花费了我不少时间。原因在于我测试样例2的时候,给出的结果一直是1、2、3,我一直以为是我的思路出现了问题,但是想了无数遍、也问了AI无数遍,仍然没发现我的逻辑上有什么问题。最后的最后,我突然想到样例2中的根号2是1.414,四舍五入保留整数是1,显然这样与后面的1一样,就会导致最后的结果出错。于是,我将int类型全部换成了double类型,还是不行。所以,我没有再用sqrt()函数,直接求距离的平方而非距离,这样一来结果果然正确了。原创 2024-08-15 14:30:03 · 555 阅读 · 0 评论 -
CSP-CCF 202006-1 线性分类器
【代码】CSP-CCF 202006-1 线性分类器。原创 2024-08-15 14:29:07 · 323 阅读 · 0 评论 -
CSP-CCF 201912-1 报数
思路:关键在于“如果需要报出的数是 7 的倍数或含有数字 7 则直接跳过”,对于7 的倍数:i%7==0;而对于含有数字7:可以自己写一个check函数来检查。刚开始做这一题,一点思路都没有,无奈只能上网搜索,才算有了一些思路。说明我的编程能力还是有待加强!写该函数可以联想到之前的求一个数的各个位上的数,先进行模10运算取余,再除以10,直到为0。这个我一开始并没有想到,还是得学会灵活变通!原创 2024-08-14 20:07:08 · 317 阅读 · 0 评论 -
CSP-CCF 201909-1 小明种水果
一、问题描述。原创 2024-08-14 20:06:49 · 274 阅读 · 0 评论 -
CSP-CCF 201903-1 小中大
一方面,是因为我一开始的思路就出错了,不应该设置中间数mid,因为它可能是整数或小数,设置成int类型或者double类型都不合适、都会出错,可能是类型转换上的错误,总之会导致结果迟迟运行不出来,最后尝试了很久,还是决定放弃、不设置mid、直接输出即可。②输出的数是偶数个,但可以整除((a[n / 2] + a[n / 2 - 1]) % 2 == 0),则中间数是(a[n / 2] + a[n / 2 - 1]) / 2。①输入的数是奇数个(n % 2 == 1),则中间数是a[n/2]原创 2024-08-13 08:29:35 · 389 阅读 · 0 评论 -
CSP-CCF 201812-1 小明上学
k=1、2、3 时,分别表示看到了一个红灯、黄灯、绿灯,且倒计时显示牌上显示的数字是 t,此处 t 分别不会超过 r、y、g。小明先经过第一段道路,用时 10 秒,然后等待 5 秒的红灯,再经过第二段道路,用时 11 秒,然后等待 2 秒的黄灯和 30 秒的红灯,再经过第三段、第四段道路,分别用时6、3秒,一次上学的路上,小明记录下了经过每段路的时间,和各个红绿灯在小明到达路口时的颜色和倒计时秒数。希望你帮忙计算此次小明上学所用的时间。输入的第一行包含空格分隔的三个正整数 r、y、g,表示红绿灯的设置。原创 2024-08-13 08:28:10 · 323 阅读 · 0 评论 -
CSP-CCF 201809-1 卖菜
店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。输出一行,包含n个正整数,依次表示每个商店第二天的菜价。给定第一天各个商店的菜价,请计算第二天每个商店的菜价。原创 2024-08-12 08:44:22 · 326 阅读 · 0 评论 -
CSP-CCF 201803-1 跳一跳
输入包含多个数字,用空格分隔,每个数字都是1,2,0之一,1表示此次跳跃跳到了方块上但是没有跳到中心,2表示此次跳跃跳到了方块上并且跳到了方块中心,0表示此次跳跃没有跳到方块上(此时游戏结束)。依然是:考虑问题要细心周到,就比如说本题加两分的情况,是有两种情况:一个是前一个输入是1,一个是当前数位于首位,不要忘记j=0的情况!跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8...)。原创 2024-08-12 08:44:00 · 609 阅读 · 0 评论 -
CSP-CCF 201712-1 最小差值
对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。第二行包含n个正整数,相邻整数之间使用一个空格分隔。注:要用到绝对值函数abs,其头文件为<math.h>相差最小的两个数是5和4,它们之间的差值是1。有两个相同的数3,它们之间的差值是0.输入第一行包含一个整数n。输出一个整数,表示答案。思路:使用双重循环来遍历。原创 2024-08-11 14:13:11 · 302 阅读 · 0 评论 -
CSP-CCF 201709-1 打酱油
酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。本题又是花费了不少时间,原因在于太墨守成规,习惯用for循环,但是本题更适合用while循环,或者直接计算即可。输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。把80元分成30元和50元,分别买3瓶和5瓶,其中3瓶送1瓶,5瓶送2瓶,共得到11瓶。把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。分三种情况进行(大于等于50、30-50、小于等于10)输出一个整数,表示小明最多可以得到多少瓶酱油。原创 2024-08-11 10:30:00 · 362 阅读 · 0 评论 -
CSP-CCF 201703-1 分蛋糕
小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 10000,1 ≤ ai ≤ 1000。第一个朋友分到了前3块蛋糕,第二个朋友分到了第4、5块蛋糕,第三个朋友分到了最后一块蛋糕。原创 2024-08-10 12:02:55 · 305 阅读 · 0 评论 -
CSP-CCF 201612-1 中间数
an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。从第一个数开始遍历,分别记下比此数大和比此数小的个数,如果相等,则为中间数;如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。输入的第一行包含了一个整数n,表示整数序列中数的个数。给定一个整数序列,请找出这个整数序列的中间数的值。在序列中的4个数都不满足中间数的定义。在序列中的5个数都不满足中间数的定义。原创 2024-08-10 11:42:50 · 241 阅读 · 0 评论 -
CSP-CCF 201609-1 最大波动
小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。第四天和第五天之间的波动最大,波动值为|3-7|=4。输出一个整数,表示这只股票这n天中的最大波动值。第二行包含n个正整数,依次表示每天的收盘价格。原创 2024-07-31 12:32:00 · 200 阅读 · 0 评论 -
CSP-CCF 201604-1 折点计数
给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1≠ai。所有评测用例满足:1 ≤ n ≤ 1000,每天的销售量是不超过10000的非负整数。第二行包含n个整数,用空格分隔,分别表示a1, a2, …思路:从第二个数到倒数第二个数,只需比较该数与前一个和后一个数的情况即可。输出一个整数,表示折点出现的数量。原创 2024-07-31 12:28:00 · 251 阅读 · 0 评论 -
CSP-CCF 201512-1 数位之和
通过此题掌握了求一个数的位数及数位之和的方法,再次感觉到自己储备的知识的不足:在求各个位上的数值时遇到了不少阻碍,也查阅了各种信息,花费了不少时间,才将其弄懂。直接通过模10运算就可以得到输入整数的每一位数字,使用while循环每次计算得到一位后除10,当等于0时退出循环。分析:该题的重点是获取输入的整数的位数及每个位上具体的值。①利用结论:对于任意一个数n,要计算第site位的数,都可以用n/10^(site-1)%10。20151220的各位数字之和为2+0+1+5+1+2+2+0=13。原创 2024-07-30 22:45:35 · 598 阅读 · 0 评论 -
CCF-CSP 201509-1 数列分段
此题也花了我不少时间,感觉最根本的原因是:题目没有完全读懂就开始敲代码,并且问题转换能力还是太差,一味使用老方法,有点固地自封,不能打开新思路。注意:代码中注释掉的部分是另一种遍历方式,即当前数与后一个数比较,但是当当前数是最后一个数时,不好比较,所以不建议使用。8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。, an,表示给定的数列,相邻的整数之间用一个空格分隔。方法二:该数与相邻的数进行比较,先求相邻数之间不同的数有多少个,最后也要加1。原创 2024-07-29 12:40:25 · 427 阅读 · 0 评论 -
CCF-CSP 201503-1 图像旋转
询问AI,给出的回答是:将数组声明放在外部,即在函数外面,可以确保只在程序运行时分配一次内存并初始化,避免了多次重复声明和初始化造成的问题。这样能够保持数组的内容在各个函数之间的一致性,确保正确读写数组的内容,避免潜在的异常情况发生。计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。接下来n行每行包含m个整数,表示输入的图像。原创 2024-07-29 12:08:00 · 465 阅读 · 0 评论 -
CCF-CSP 201412-1 门禁系统
涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。读懂之后,感觉和201312-1 出现次数最多的数 这一题的思路很像,只需稍微修改一下即可。输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。1≤n≤1,000,读者的编号为不超过n的正整数。输入的第一行包含一个整数n,表示涛涛的记录条数。原创 2024-07-28 11:55:20 · 295 阅读 · 0 评论 -
CCF-CSP 201409-1 相邻数对
值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。1<=n<=1000,给定的整数为不超过10000的非负整数。该题与 201403-1相反数的思路很像,只需稍加改动即可。输入的第一行包含一个整数n,表示给定整数的个数。输出一个整数,表示值正好相差1的数对的个数。第二行包含所给定的n个整数。原创 2024-07-28 11:44:58 · 168 阅读 · 0 评论 -
CCF-CSP 201403-1 相反数
该题还是比较简单的,因为我这题大概就用了20多分钟(相较于昨天的几个小时算快的了)。但是第一次的时候没有考虑到计数重复。有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。第一行包含一个正整数 N。只输出一个整数,即这 N 个数中包含多少对相反数。原创 2024-07-26 20:33:34 · 256 阅读 · 0 评论 -
CCF-CSP 201312-1 出现次数最多的数
这是我做的CSP认证的第一道题,也是我发的第一篇博客。虽然这个题目看起来挺简单的,但我还是花了好长时间(起码3个小时),并且也是通过搜索查询、参考借鉴其他代码等方式来解决的,并非完全靠自己写。输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。如果这样的数有多个,输出其中最小的一个。原创 2024-07-25 22:20:01 · 445 阅读 · 0 评论