CSDN 每日一练及周赛介绍
- 每日一练
- 每日一练入口
- CSDN 周赛
- CSDN 周赛入口
- 相关社区
- 每日一练社区入口
- CSDN 竞赛专区社区入口
- 每日一练题库
- 每日一练速查
- 每日一练题目题解速查入口
- 每日一练题解
- 自行接管输入
- 根据题号进入题目预习
- 提交新题目
- CSDN 编程比赛出题规范
- 吐槽
每日一练
CSDN 有一个学习栏目
进入到这个栏目之后,就有一个每日一练频道
CSDN 文盲老顾的博客,https://blog.csdn.net/superwfei
这个频道里,每天会有三个编程题,12个选择题供人练习。这里,老顾只对编程题进行一下介绍。
每日一练入口
每日一练入口:https://edu.csdn.net/dailycode
CSDN 周赛
在进入到每日一练页面后,顶部导航会有一点点变化,多出了一个有奖竞赛的入口。
这里就是 CSDN 周赛的入口了。在问答区也有一个竞赛入口,比这里的要完整一些。
CSDN 周赛入口
周赛入口:https://edu.csdn.net/contest/all
参加周赛,每期的前三名可以获得实体书籍的奖励,还是很不错的,前10名其他的人则可以得到诸如扑克、挎包、杂志之类的奖励。
不过,也不知道是什么原因,最近周赛举办频次突然降低了。从以前的一周两次,到现在只有一周一次的样子。
现在刷竞赛勋章的难度,可比原来大了一倍了。
相关社区
每日一练社区入口
在社区中,有不少社区和每日一练是存在着强关联性质的,最主要的就是每日一练社区:https://bbs.csdn.net/forums/dailycode?category=0&typeId=1562
在这个社区中,存在着每日一练的所有题目描述,除了部分新出的题目,题目帖子中还包含了每日一练的题目入口。
当然,还有不少小伙伴,在题目贴下留下了各自的代码和题解。
CSDN 竞赛专区社区入口
然后就是和周赛有关的社区:https://bbs.csdn.net/forums/contest?typeId=131386
和周赛相关的内容,都在这个社区内。
通常老顾只关心奖惩公告,因为周赛要求前十名需要写一篇博客文章,才会给实物奖励,所以奖惩公告区的帖子下,跟着很多小伙伴提交的题解博客文章,对于不清楚题目算法或理解的,可以参考这些小伙伴的文章。
这里提上一句啊:所有周赛题目,出自每日一练的题库。
每日一练题库
每日一练的题库其实非常非常小,截止到目前,一共才158个题目,嗯,其中两个是刚刚入库的新鲜题目。有新鲜的题目,都会在每日一练社区内进行公布的。
然后老顾这里放出一段 python 代码,可以获取当前题库的内容,当然,由于懒得做逆向,所以没有去获取每日一练的编号,只获取了题库的编号。
import requests
import json
for i in range(1,300):
res = requests.post(url = 'https://dailycode.csdn.net/school/question/retrieve',data='[{"ids":[' + str(i) + '],"type":0}]')
j = json.loads(res.content.decode('utf8'))
items = j['data']['0']
if len(items) > 0:
ques = items[0]
title = ques['title']
print(i,title,)
运行这段代码,就可以得到如上图所示的内容,其中第一列的数字,就是题库的题目编号。
每日一练速查
由于官方没有提供所有的题库入口,只在每日一练频道每天提供6到9个(偶尔抽风)题目入口,所以在每次周赛之后,有很多小伙伴找不到相应的题目进行验证。
每日一练题目题解速查入口
嗯,老顾则闲得无聊的时候,做了一个速查的帖子:https://bbs.csdn.net/topics/615835833
在该帖子里,老顾将每日一练题目的入口以带链接的编号形式直接列出来了,有需要对特定题目练习的小伙伴可以方便的进入指定题目进行练习。
当然,有些题目的每日一练编号,老顾也暂时不得而知,但是,也是可以进入相应题目进行练习的,比如新出的两个题目,老顾就已经完整的预习过了,嘿嘿。
每日一练题解
对于每日一练的题解,目前比较好的内容,是通过CSDN竞赛社区的奖惩公告贴,查看每期的各位小伙伴的不同解答,老顾已经在速查贴中,列出相关题目出现在哪一期了。这里再次感谢问哥提供的周赛记录。
当然,也可以看老顾自己在速查贴中,提供的帖子,点击题目对应的帖子,就可以看到老顾自己的解答了。不过老顾的解答相对比较土,大部分都是暴力计算,毕竟老顾没有专门学过算法。
自行接管输入
在大多数的每日一练题目中,都有各种语言预定义好的一些代码,用来进行数据输入,但是这里容易存在一些坑,所以推荐还是自己写输入信息接收比较好。比如《津津的储蓄计划》,比如《鬼画符门之点点大阵》,又比如《小桥流水人家》。
另外,一些新的题目,并没有预定义好的代码,这些题目就要求各位选手,必须自行接管输入了,嘿嘿。
当然,输入输出是学习编程中,最基础的部分,相信小伙伴们都能很轻松的做到啦。
根据题号进入题目预习
因为 CSDN 的每日一练,里面带了一些乱七八糟的防采集验证,所以老顾懒得做逆向,直接用C站自带的验证信息好了。
在每日一练频道,随便进入一个编程题,然后打开控制台,并在控制台输入 js 指令。
console.log($('iframe').attr('src'))
嗯。。。。这里就是真正的题库入口了,而不是每日一练的入口。
将这个链接复制出来,然后将参数 id 后边的数字修改成老顾速查贴中的题号,就可以进入到相应的题目了,嘿嘿。比如最新的题目《布尔零点计数》,题号就是 222,用这个链接修改成相应题号,就可以提前预习了。
提交新题目
目前为止,在 CSDN 的网站上,没有找到可以提交新题目的地址。但是也有变通的办法。
在每期的比赛详情页面,最下边有一个二维码,这是考试小助手的二维码,可以与小助手进行沟通,进行新题目的提交。
CSDN 编程比赛出题规范
出题规范:https://bbs.csdn.net/topics/610729224
原谅老顾看过之后还是没能看懂,嘿嘿,如果有小伙伴看明白了,并提交成功新题目了,还请告知老顾如何实操。看文档老顾实在不擅长。
吐槽
CSDN 的题目,基本上正经考算法的题目太少了。多数都是阅读理解问题,所以很多题目,需要预习甚至参考一下别的小伙伴的答案,否则以老顾这样的,基本上题意都无法理解,更不要说解题了。
再有就是各种意料之外的展开也挺多的,很多题目,仅仅按照基本做法,甚至无法 AC ,总有各种意料之外的隐藏条件,在题目中未能说明。
也不知道到底啥情况,最近连考试小助手都消失了,有一个月没回馈老顾的消息了,伤心。