怎么获取codeforces的数据_【洛谷日报#116】Codeforces快速精通

Codeforces游玩攻略进阶版 —— Codeforces快速精通

e637e3190ee0713df394463759271f43.png

1. 社区相关

(1) 语法支持

Codeforces的社区系统支持Markdown和

,同时还有许多Codeforces的独特语法。

下面我们给一个例子:

c3b2c57452127e75909b31efd0e5b30c.png

可见Codeforces支持Markdown的基本语法,例如标题、加粗、斜体等。

单击格式栏里最右侧的一个按钮,您可以看到Codeforces论坛特有的元件,从上往下分别是插入用户、提交记录、题目、比赛、比赛排名、折叠器。这里主要讲讲折叠器的作用,当您插入代码时,由于代码的长度很长,容易占据很多空间,这是可以用折叠器把代码折叠起来,这样就不会占据太多的页面空间了。当有人需要查看代码的时候,可以将其展开。

(2) 评论

在每条评论的最右侧,您都能看到一个正三角形和一个倒三角形夹着一个数字,这就是对评论的评价系统。单击正三角形为“赞”,倒三角形为“踩”。一名用户收到的“赞”和“踩”的数目会影响一个用户的Contribution。(Contribution拥有一个极其玄学的计算方式,貌似rating或者Contribution高的人“赞”和“踩”对别人的Contribution影响更大?如果一段时间不发言,Contribution会逐渐降至0?)

您有可能会发现某些评论的颜色变淡或者只有一句“The comment is hidden because of too negative feedback, click here to view it”。这是因为该评论收到了较多的“踩”,从而导致系统自动隐藏了这些评论(就是把颜色弄浅),如果收到的“踩”太多了,那么评论就会变为“The comment is hidden because of too negative feedback, click here to view it”,只能单击“here”查看。

如果一条评论的底色为黄色,则表示这条评论是由您发出的。

如果一条评论的底色为蓝色,则表示这条评论是新的评论,即您上次浏览该博客后发出的评论。

(3) 浏览

在浏览博客时,页面右侧中间可能会出现一个灰色小框,含有一个上箭头,一个下箭头和一个数字。这个数字代表的是新评论的数量,两个箭头可以帮助您定位到上一条或者下一条的新评论上。

当您将鼠标指针移至页面最左侧时,会显示出一条灰色的暗条,单击这个条会回到页面最顶端。

------------

2. 做题相关

(1) 题目

单击首页最上方的PROBLEMSET按钮,您将会看到Codeforces的题库。这些题目均为曾经的比赛题目。

f1e537c850a4828b12f588cb8ee65121.png

在这个页面上您可以看到每道题目的编号、名字、标签、自己是否通过、通过人数的信息。若您知道一道题目的编号,那么您可以输入 http://codeforces.com/problemset/problem/题目编号中的数字/题目编号中的英文 来进入该题,例如,我们知道The Child and Binary Tree (小朋友和二叉树)的题号为CF438E,那么我们只要输入Problem - 438E - Codeforces就可以进入该题了。

Q&A

Q:我怎么看到我有没有通过一道题目啊?

A:您可以点开该题,然后在右侧找到Last submissions一栏查看自己是否通过。或者在Problemset中找到该题(不要点开),看看底色是否为绿色(绿色为已通过,红色为已提交但未通过,白色为未提交)。

Q:我怎么看别人在这题上的提交记录啊?

A:在Problemset中找到该题(不要点开),点击右侧的通过人数即可。

Q:我怎么查看一道题目的最优解,或者最短解呢?

A:在Problemset中找到该题(不要点开),点击右侧的通过人数,然后在页面最下方选择排序方式。

排序方式有:默认排序,提交时间排序,评测时间排序,代码长度排序和运行时间排序。

Q:我能否筛选一道题某种语言的提交呢?

A:能!在右侧的Status filter中选择条件,然后按Apply即可。

Q:You have submitted exactly the same code before是啥?为什么我点提交就出现这句话,然后提交不上去呢?

A:Codeforces不允许重复交同一份代码,请对代码做些改动再提交。

(2) 评测

Codeforces上大多数的评测结果都与其它OJ没有区别,遇到Judgement failed等等的情况一般都是服务器的故障,稍等片刻,等待管理员修复,重交一遍一般就好了。

Codeforces上的数据是(半)公开的,每个数据都能在你的提交页面中看到,但是过大的数据只能显示出前一部分。

注意:Codeforces在评测程序时,会在第一个错误的测试点上马上停止,不会评测后面的测试点。

由于在比赛中的部分hack数据会在比赛结束后加入这道题目的测试点中,所以部分题目可能有上百个测试点,遇到这种毒瘤题请耐心等待,Codeforces的神机还是很快的。

(3) GYM

gym中有许多ACM套题可供练习,可以直接做,也可以Virtual participation。但是紫名以及以下的用户在gym中无法看到数据,也无法看到别人的代码。

gym中的比赛均为ACM-ICPC赛制。

------------

3. 比赛相关

正题来了。

(1) 赛制

若您已经大致了解Codeforces的赛制,则建议您跳过此部分

第一部分:Div.1和Div.2比赛的赛制——CF赛制

Codeforces最出名的当然是CF赛制啦!在一场采用CF赛制的比赛中,每道题拥有一个满分,一般来说,满分与题目难度成正比,题目难度按顺序递增,例如,一场比赛的满分分布可能是500-1000-1500-1500-2250-3000。

然而,每道题的分数不是不变的,随着比赛时间的流逝,分数会逐渐减少,例如,一道500满分的题目,在00:01通过pretest的分数一般为498,在00:02通过pretest的分数一般为496。并且,每一次错误的提交还会扣除您50分的得分。

举一个例子,一道500分的题目,在第三分钟通过pretest,但是有一次错误的提交,那么得分为494-50=444分(494为这道题在00:03时的分数,50分为一次错误提交的罚分)。

重点:上面为什么说的是通过pretest而不是AC呢,因为CF赛制的题目会有两套数据,一套称为Pretest,另一套称为System Test,当比赛进行时,您的提交将会用Pretest测评,若通过所有Pretest,则会显示Pretests passed,否则显示错误的Pretest编号和错误类型,例如Wrong answer on pretest 3,并且还会被罚50分(如果编译错误则不会罚分,错在第一个测试点也不会被罚分)。

当您的一道题目Pretests passed后,您可以单击题目列表中那到题目后面的“锁”的符号,这称为锁题,当您锁了一道题后,您就不能再次提交该题了,但是您可以查看同一个房间中其它人本题的代码,若找到了其他人代码中的错误,您可以向他发起hack,即提交一组测试数据使得他的代码错误(例如Wrong answer等等)。一次成功的hack可以使您获得100分,不成功则扣掉50分。

房间:参加比赛的所有用户大约每40各人组成一个房间,只有在房间里的用户才能互相hack。

发起hack的方式是:双击您的房间的排行榜中的任何一个绿色数字,再单击通过的提交的编号查看代码,如果找到了错误,那么您可以单击hack it!,然后输入数据或者上传数据生成器,单击hack即可。

注意:锁了的题不能再提交,也就是说如果您锁了一道题,但是您的程序被hack了,那么您就没有补救的机会了。所以,叉人有风险,锁题需谨慎

比赛结束后不久就会进行System Test,就是将您已经通过Pretest的程序再测试一套数据,这套数据包括所有比赛中成功hack的数据(所以在Codeforces上有些题目可能拥有上百个测试点),只有您的程序通过了System Test,您的程序才是真正通过了,否则称为Failed System Test(FST),这道题也就不得分了。

(摘自Codeforces游玩攻略)

第二部分:Div.3和Educational比赛的赛制——拓展ACM-ICPC赛制

拓展ACM-ICPC赛制是指,每次提交立即评测出结果,排名按照通过题数排(这意味着每道题权重相同),题数相同则按总时间排,总时间指的是每道题第一次通过的时间之和+错误的提交次数×10分钟。

当然Codeforces的核心——hack还是会出现的,每场拓展ACM-ICPC赛制的比赛结束后,会有12个小时的时间,让您随意查看、hack每个人的提交,这12个小时结束后,所有程序还会测试一遍成功的hack的数据,得到的结果才构成最终的排名。

(2) 做题技巧

下分大佬请自行左转【洛谷日报#38】[OwenOwl]浅谈如何在Codeforces下分。

我们可以发现,分值大的题目分数随时间减少的速度比分值小的题目更快,所以,如果您确保自己能够很快的通过C、D、E甚至F题,您可以选择倒序做题。

例如,若您认为您的水平已经达到能够一眼看出A、B、C题的解法,您可以选择按照C-B-A或着C-A-B的顺序做题。若您是轻松AK的大佬,您可以按照F-E-D-C-B-A的顺序做。

c559c13ced4ae265812bd2a63d14244d.png

我们可以看到,同样是做出5题的选手,上面这张图片的rank1就是采用了按照E-C-B-A-D的做法,拿到了较高的分数。

另外,若您对一道题思考许久没有思路,您可以切换到下一题(因为经常有毒瘤出题人出的题目,难度不按顺序递增)。

(3) hack技巧

CF赛制最刺激的部分是什么?Hack!System Test!

Hack其实没有多大的技巧,但是关键是快、准、狠。因为,比赛的时间不长、hack失败要扣分、hack成功有不错的回报。

给些hack的tips:仔细看题目数据范围的边界情况,例如

的题目可能出现需要特判
的情况,而没有特判的程序也有可能通过pretest,这时候就大胆hack吧。

另外:有些暴力也是能过pretest的,这时候也去写个generator大胆hack吧。

(4) 插件推荐

推荐插件CF-Predictor。

安装完这个插件后,您的Codeforces的比赛排名榜页面会变成这样子的:

298e9166fb56ac77f067461255cdc014.png

有没有发现,最右侧多了一栏数字,这些数字代表的是rating的变化。

Q:那这个插件有什么用呢?

A:它可以告诉你rating的变化啊。

Q:它可以在比赛结束时告诉我rating将要变化多少吗?

A:当然可以。比赛结束时打开排名榜,找到自己,然后看自己最后一栏的数字是什么就代表您的rating将怎样变化。由于System Test的存在,这个数字在System Test前是不准的(也不会有多大误差),在System Test结束后,这个就是准确的rating变化值了(误差不超过1)。

Q:比赛时CF-Predictor有用吗?

A:有用!CF-Predictor在比赛是给出的值是如果您保持当前排名不变,比赛结束后您的rating变化值。

Q:为什么我显示不出来啊。

A:首先,请确保正确安装并启用了这个插件。打开比赛排名榜页面后,如果没有显示出来,请先稍等大约30秒。如果您访问的是https版的Codeforces,试试把https改为http,然后再尝试一次。

Q:CF-Predictor怎么安装啊?

A:Firefox用户可以直接在浏览器的“附加组件”中搜索CF-Predictor安装。如果您不是Firefox用户,您可以点击Tampermonkey for Chrome来安装tampermonkey,再访问CF-Predictor安装CF-Predictor。

这个方法对Microsoft Edge、Chrome等浏览器均有效。

(5) 作弊处罚

如果在比赛结束很久后你的rating都没有更新、比赛的提交状态都显示为Skipped,并且收到一条这样的信息:Attention! Your solution (你的提交编号) for the problem (题目编号) significantly coincides with solutions (用户名)/(提交编号). Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use Loading... with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at Rule about third-party code is changing - Codeforces. Such violation of the rules may be the reason for blocking your account or other penalties. ,那么这就说明你的代码与其他选手有雷同,所以这场比赛对你Unrated。

这是Codeforces对比赛作弊的处罚,如果你多次作弊,那么将会被封号。

(6) Virtual participation

如果您觉得大部分比赛时间太晚,而赛后做题又没有比赛的感觉,您可以尝试Virtual participation,即参加一场虚拟比赛。

发起Virtual participation的方式:在CONTESTS中找到您要发起Virtual participation的比赛,然后单击比赛名称下方的`Virtual participation » `,设置好时间和参赛人员即可。

Virtual participation具有以下特点:

- Unrated

- ACM-ICPC赛制

- 可自定义开始时间以及参加选手

- 提交直接测system test,而不是pretest

如果想要和同学参加同一场Virtual participation的话,可以加入同一个Team,然后再选择Take part:as a team member即可。

------------

由于学识尚浅,就只讲这么多了,如有错漏请指出。最后祝大家high rating,早日LGM!

<think>好的,我现在要帮用户整理一份学习C++的博客清单,并制定一个规划表,帮助他们从入门到达到NOIP水平。首先,我需要确定用户的需求。用户是刚开始学习C++,目标是通过NOIP竞赛,所以需要覆盖从基础语法到高级算法的内容。 首先,我得分解学习路径。通常NOIP考察的内容包括基本语法、数据结构、算法、以及题目实战。所以博客清单应该分阶段,逐步深入。 第一阶段肯定是基础语法。用户需要了解变量、循环、条件语句、函数、数组这些。然后是STL的使用,比如vector、string、queue、stack等,这些在竞赛中非常常用,能节省很多时间。 接下来是基础算法,比如排序、查找、递归、分治、贪心、简单动态规划。这些是解决NOIP题目的基础,必须扎实。 第三阶段是数据结构进阶,比如链表、树、图、并查集、堆、哈希表。特别是树和图的相关算法,比如遍历、最短路径、最小生成树,这些在竞赛中经常出现。 第四阶段是高级算法,包括动态规划、搜索算法(DFS、BFS、剪枝)、数论、字符串处理(KMP、字典树)、高级图论算法。动态规划在NOIP中占比较大,需要重点讲解。 最后是综合实战,通过模拟题和历年真题来巩固所学知识,熟悉比赛题型和时间管理。 接下来,我需要为每个阶段推荐具体的博客资源。要确保这些资源是中文的、免费且质量较高的。比如C语言中文网、OI Wiki、阮行止的博客、Pecco的算法课等,这些资源比较权威,适合不同阶段的学习。 然后是规划表。用户可能需要一个为期4-5个月的计划,每周安排不同的主题。例如,前两周学习基础语法,接下来两周学习STL,然后逐步深入算法和数据结构。每个月复习和实战测试也很重要,帮助巩固知识。 需要注意用户可能有不同的学习速度,所以规划表要有一定的弹性,建议每天2-3小时的学习时间,保持持续学习。同时,提醒用户多做练习题,参加在线评测平台,如洛谷Codeforces,这些对提升实战能力很有帮助。 最后,检查是否有遗漏的部分,比如调试技巧、代码优化,或者竞赛中的常见陷阱。确保推荐的博客内容覆盖这些方面,帮助用户全面准备NOIP。</think>我将为您整理一份C++学习路径及配套博客资源清单,并附上详细规划表。以下内容根据NOIP考纲要求设计,分阶段渐进式学习: --- ### 一、分阶段学习博客清单 #### 📚 阶段1:C++语法基础 1. **《C++快速入门指南》**(C语言中文网) - 环境搭建、变量类型、运算符、流程控制、函数 2. **《从零理解面向过程编程》**(菜鸟教程) - 数组、字符串、结构体、指针基础 3. **《C++标准输入输出全解析》**(洛谷日报) - 输入输出优化、流控制、格式处理技巧 #### 🔧 阶段2:STL与基础算法 1. **《STL容器完全指南》**(OI Wiki) - `vector`/`string`/`queue`/`stack`/`map`详解 2. **《十大排序算法动画解析》**(Hello算法) - 冒泡/选择/插入/归并/快排/堆排序对比 3. **《递归与分治实战20例》**(Codeforces教程) - 汉诺塔、斐波那契、快速幂实现 #### 🧠 阶段3:数据结构进阶 1. **《树形结构完全手册》**(AcWing博客) - 二叉树/二叉搜索树/堆/并查集实现 2. **《图论算法三部曲》**(Pecco的算法课) - DFS/BFS/最短路径/最小生成树 3. **《动态规划入门到精通》**(阮行止的博客) - 背包问题、线性DP、状态转移方程设计 #### ⚡ 阶段4:NOIP专项突破 1. **《竞赛数学技巧大全》**(洛谷日报) - 质数筛法、快速幂、模运算、组合数学 2. **《剪枝与优化实战指南》**(OI Wiki) - 记忆化搜索、双向BFS、启发式搜索 3. **《历年NOIP真题精讲》**(信息学奥赛一本通) - 2015-2022年真题解析 --- ### 二、学习规划表(总时长4-5个月) #### 📅 第1-2周:语法筑基 - 每天2小时学习基础语法 - 配套练习:洛谷「新手村」题目 - 重点掌握:循环结构、数组操作、函数编写 #### 📅 第3-4周:STL实战 - 重点练习:`vector`和`sort`的配合使用 - 典型题目:P1177(排序)、P1553(字符串处理) #### 📅 第5-6周:算法入门 - 每日刷3道递归/分治类题目 - 理解时间复杂度的计算方法 #### 📅 第7-8周:数据结构攻坚 - 专项训练:并查集(P1551)、堆(P1090) - 掌握树的前中后序遍历实现 #### 📅 第9-12周:动态规划与图论 - 重点突破:背包九讲、Floyd/Dijkstra算法 - 完成10道经典DP题目(如P1216数字三角形) #### 📅 第13-16周:综合实战 - 每周完成2套NOIP模拟赛 - 分析错题并撰写解题报告 - 学习对拍调试技巧 --- ### 三、关键学习建议 1. **代码实践**:每个知识点必须配合3-5道练习题 2. **调试能力**:学会使用`gdb`或IDE调试工具 3. **复杂度控制**:保证算法能通过$10^5$量级数据 4. **模考策略**:训练每题最多25分钟的解题速度 ### 四、推荐练习平台 - **洛谷**(www.luogu.com.cn) - **AcWing**(www.acwing.com) - **Codeforces**(codeforces.com) 附学习路线图: ```mermaid graph TD A[语法基础] --> B[STL容器] B --> C[排序/查找] C --> D[递归/分治] D --> E[线性数据结构] E --> F[树形结构] F --> G[图论算法] G --> H[动态规划] H --> I[数学基础] I --> J[综合实战] ``` 建议每天保持2-3小时有效学习时间,每周安排半天进行错题复习。遇到难点时,可参考《算法竞赛进阶指南》纸质书辅助学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值