CCF-CSP
CCF-CSP刷题
风信子的猫Redamancy
在校本科大学生 B站up小白风信子的猫Redamancy 个人博客地址: https://kedreamix.github.io/
2022第十三届蓝桥杯PythonB组省一等奖,以及国赛一等奖
2022年第十二届MathorCup高校数学建模挑战赛 研究生组 二等奖
对计算机视觉,人工智能,以及机器学习等方面感兴趣
放弃不难 但坚持一定很酷
成功的法则极为简单,但简单并不代表容易
希望自己在这条路上,不孤单,不言弃,不言败
Stay Hungry,Stay Foolish
有时候没有及时回私信等等,可以发邮件咨询,1016617094@qq.com,你们的问题我都会认真看和回答的
展开
-
CSP 202203-2 出行计划 python 差分算法
CSP 202203-2 出行计算 python题目描述思路这道题实际上是利用差分进行计算,也就是进行区间修改我们可以大概找一下思路,首先我们的数据来说,我们能够正常进行计划的做核酸的时间是q+k≤t≤q+k+c−1q +k \le t \leq q+k+c-1q+k≤t≤q+k+c−1我们可以看到,只要满足这个条件,我们就可以完成我们计划,所以我们需要对这个区间的值都进行+1的操作,对于差分数组来说,我们就只需要对两端进行操作,也就是t[l]+=1,t[r+1]−=1t[l]+=1,t原创 2022-05-31 08:00:00 · 2302 阅读 · 0 评论 -
CSP 202203-1 未初始化警告 python 标记数组
CSP 202203-1 未初始化警告 python题目描述样例输入输出思路这道题的思路很简单,也就是查看前面出现的左值中,是否有当前语句的右值,如果没有,说明未初始化。所以我们可以设置一个标记数组,将正确的数进行标记,然后输入的时候判断即可代码n,k = map(int,input().split())a,b = [],[]vis = [0 for i in range(n+1)]vis[0] = 1ans = 0for i in range(k): x,y = m原创 2022-05-30 11:03:44 · 5294 阅读 · 0 评论 -
CSP 202112-2 序列查询新解 python 离散+二分法
CSP 202112-2 序列查询新解 python题目描述思路思路大概是离散化+二分法,我们可以看到测试的规模,如果利用暴力法,我们只能过70%样例,最后获得70%的分,所以不能直接用暴力的方法考虑用N太浪费时间,发现如果用n进行循环,时间就不会超出限制,又能够发现A[i-1]~A[i]内f的值都是一样的,所有的g的值其实就是i/r的整数部分,因此一开始想到把全部的f的值加起来,g的值加起来作差就行,但最后发现不对,因为中间有些做完差后需要取绝对值就考虑在已经分好的 A[i-1]~A[i原创 2022-05-30 10:43:49 · 2115 阅读 · 0 评论 -
CSP 202112-1 序列查询 python
其实这道题,我觉得提示给的非常清楚了,这个提示啊,直接送分了哈哈哈,所以我们只要根据提示,利用乘法运算,计算就可以得到结果原创 2022-06-01 18:17:33 · 5385 阅读 · 0 评论 -
CSP 202009-2 风险人群筛查 python 暴力
这道题还是很简单的,也就是穷举暴力搜索即可,详细可以看代码原创 2022-06-01 18:07:27 · 1869 阅读 · 0 评论 -
CSP 202109-2 非零段划分 python 前缀和算法
CSP 202109-2 非零段划分 python题目描述思路其实这道题可以转化成一个水淹岛屿模型我们可以将题目中给出的数画一个曲线图,题目的意思就是在曲线图上水平切一刀,水平线上面的部分最多能被分成几部分可以想象成水平面淹没山峰的场景假设上平面一开始淹没所有山,露出的山峰为当水平面下降,会有山峰露出,露出的山峰数量增加,也会有山谷露出,使两座已露出的山峰合并为一座山,露出的山峰数量减少所以解题思路是可以先统计题目中给出的山峰对应水平高度对露出山峰数量的贡献(就是水平面如果降到一原创 2022-05-30 23:58:46 · 5260 阅读 · 0 评论 -
CSP 201903-2 二十四点 python (python有如神助)
这道题用python真的很简单,我们只需要把字符串的部分替换成乘除,我们就可以直接用python的eval函数得到结果原创 2022-06-02 13:00:00 · 1941 阅读 · 0 评论 -
CSP 202109-1 数组推导 python 思维
这道题思路还是很简单的最大值其实就是全部都取最大值的时候,也就是说求数组的和就是我们的最大值最小值其实就是,将连续的值,只取其一,换句话说,只有第一次出现的最大值存在,其余都是0,所以我们只要分组,然后求单独的数即可。原创 2022-06-01 18:01:26 · 3971 阅读 · 0 评论 -
CSP 202104-4 校门外的树 python 动态规划DP + 约数优化
设$f[i]$为前i个障碍物所能生成的最多可能性设 $cnt[i][j]$为从第i个障碍物到第j个障碍物的可行方案数想要求$cnt[i][j]$只需从位置i枚举所有间隔的可能性, 看是否能在不触碰到 i , j 之间的障碍物的情况下到达原创 2022-06-02 09:00:00 · 5362 阅读 · 0 评论 -
CSP 202104-2 邻域均值 python 二维前缀和
这道题可以简单的先,我们可以用暴力法,但是暴力法只能过70%的数据实际上我们是利用一个前缀和的思想进行求解,只需要求出前缀和,然后得出领域的和,这样我们就不用使用双重循环暴力求解了,具体实现可以看一下代码原创 2022-06-01 08:00:00 · 5231 阅读 · 0 评论 -
CSP 202009-1 称检测点查询 python
CSP 202009-1 称检测点查询 python题目背景2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。问题描述某市设有 n 个核酸检测点,编号从 1 到 n,其中 i 号检测点的位置可以表示为一个平面整数坐标 (xi,yi)。为方便预约核酸检测,请根据市民所在位置 (X,Y),查询距其最近的三个检测点。多个检测点距离相同时,编号较小的视为更近。输入格式输入共 n+1 行原创 2021-11-23 12:00:00 · 1824 阅读 · 0 评论 -
CSP 202006-2 稀疏矩阵 python 模拟
暴力模拟即可得到答案,我们可以用Python的字典,找到相同的键就将值进行相乘即可原创 2022-06-01 19:28:51 · 5199 阅读 · 0 评论 -
CSP 202006-1 线性分类器 python
CSP 202006-1 线性分类器 python题目描述思路简单来说,就是判断是否能够二分类两条直线,一般来说,如果在直线两侧,分别输入两类,一个是大于0,一个是小于0,有个符号的变换在这里,如果每次都要判断两次符号,分别计算就比较麻烦,我们可以设置一个标志,就是说如果A点是在直线上方,那么带入就是大于0,A的标志为1,B的标志就为-1,这样子就是得到直线f乘上标志位flag都是大于0的,如果每次都大于0,就说明我们是分对了。但是我万万没想到,这样只能拿60分,因为还有一个任务,我们要判断一原创 2021-11-23 00:00:00 · 2098 阅读 · 0 评论 -
CSP 201912-1 报数 python
CSP 201912-1 报数 python题目描述思路对于这道题,我在想有什么简单的算法么,我在想那个含7的数,有没有什么规律,但是最后还是不想了,因为测试那么少才100,666,肯定能过,而且第一题而已啦。所以唯一有的就是直接%4就可以得到甲乙丙丁,但是这里有点不同0代表的是丁,所以0123分别是丁甲乙丙,所以最后单独输出第一个就搞定啦,game over代码#!/usr/bin/env python# -*- encoding: utf-8 -*-# @File : 20原创 2021-11-24 00:00:00 · 5222 阅读 · 0 评论 -
CSP 201909-2 小明种苹果(续) python 暴力
其实这道题,我没有太多的想法,所以就只是暴力进行,而且题目的空间和时间是足够的但是这一部分要注意的是,我们需要特判一下第一个和第二个,毕竟是循环的,所以我们需要特判一下就可以了原创 2022-06-01 19:22:20 · 5172 阅读 · 0 评论 -
CSP 201909-1 小明种苹果 python
CSP 201909-1 小明种苹果 python题目描述思路种苹果还是很简单,我们可以直接累加,然后计算最大的,并且计算他所在的位置在Python更是简单,我们可以直接利用他内置的函数,就能很快的得到我们的结果,结果当然是100啦代码#!/usr/bin/env python# -*- encoding: utf-8 -*-# @File : 201909-1.py# @Time : 2021/11/20 12:24:49# @Author : DKJ#原创 2021-11-22 23:00:00 · 5227 阅读 · 0 评论 -
CSP 201903-1 大中小
CSP 201903-1 大中小思路这道题太简单了,只需要写一个得到中位数的函数就可以了,其他的Python内置函数已经搞定了代码#!/usr/bin/env python# -*- encoding: utf-8 -*-# @File : 201903-1.py# @Time : 2021/11/20 17:48:05# @Author : DKJ# @Contact : 1016617094@qq.com# @Software: VScode#原创 2021-11-24 12:00:00 · 1819 阅读 · 0 评论 -
CSP 201703-4 地铁修建 python 最小生成树,并查集
由于所有的隧道同时开始修建,则当需要花费时间最长的隧道的时间值最小时,即为修建整条地铁线路最少的时间。采用最小生成树思想,运用Kruskal算法即可求解。采用并查集思想,当第一个点和最后一个点在同一个集合时,表明此时隧道已经修建 完毕,输出最后完成的隧道所需天数即可。原创 2022-06-01 23:08:39 · 1880 阅读 · 0 评论