转跳到内容

l1ll5

【会员】新手上路
  • 内容数

    118
  • 加入

  • 最后访问

帖子发自 l1ll5

  1. 我有近十年的算法竞赛经历,高中成绩一般但也在 NOI 获过奖,在大学的竞赛中获得过国内比赛的前几名,参加过世界总决赛。自认为是坛里对 cp 是很有发言权的。

     

    首先,需要有一个 overview,懒得展开了,直接说结论:

    高中阶段如果参加竞赛,几乎一定是应该以升学为目的的。如果是纯兴趣性质的了解,高中阶段用打游戏的态度来学编程就好了。在这种情况学自己感觉有趣的东西就行,不用功利。

    1. 如果你的目标不是以后从事 cs 行业,那好好高考。

    2. 如果你志在 cs,但不能做到学有余力(至少有高中少上半年然后可以裸分上个吉大这种学校的水平吧),那同样好好高考。

    3. 否则,可以尝试以为未来提供帮助为目的学习编程。这种情况下,要学习的就是算法竞赛。考虑就业的视角是没有意义的。

     

    大概回答一下问题:

    我现在值得去尝试学习C++吗?

    对于算法竞赛,语言只是解题的工具。在绝大多数选手手中,cpp 都是 c+stl 而已。语言特性不是必须的,即使有意识的去学习现代 cpp,也只能应用到极少的一部分。

    所以,如果你选择算法竞赛,不需要考虑 why cpp 这个问题。未来切换主要使用语言也只需要很小的学习成本而已。

    稍微说多一句,即使对于实际工程而言,语言也只是学习成本,不是难以跨越的门槛。

    我要怎么学C++?

    你学的 & 要学的不是 c++,是算法竞赛。所以你要学的是各种数据结构和算法,是并查集,树状数组,线段树,平衡树...

    学习路径:熟练基础语法 —— 学习基础算法/数据结构 —— 奖项驱动,根据成绩决定是停止学习还是继续学习更复杂的算法和数据结构

    目前适应与我这个阶段的学习资料有什么?

    我个人整个学习过程是没读过任何 cp 相关的书籍的。OJ(openjudge)刷题 + 不会的东西上网搜别人写的博客就足够。但这件事很小马过河,我不多评价。

    我只说一点:一定要注意学习资料的质量。找有丰富经验的人帮忙鉴别是最好的,自己鉴别的话,有一个很简单的方法:

    如果这份材料格式美观,一般质量不会太差。

    我目前获取到的资源充足吗?课程、书籍、文档就足矣,还是需要再加入一些论坛、贴吧?还有什么网站、社区是我要接触、加入的?

    算法竞赛在高中五大学科竞赛中,最特别的一点就在于有丰富的自学资源 + 很多选手都是自学出身的。

    网站和社群的话:

    1. 洛谷:最大的中文社群,质量在平均线以上但讨论氛围很差。社群可以接触但不要投入太多,学习是第一要务。

    2. codeforces:全球最大社群,需要一点语言能力。题目和比赛质量高,各种难度梯度都有。

    3. atcoder:日本人的 OJ,功能很简洁,没有社群功能。题目很锻炼思维,各种难度梯度都有。

     

    最后一点就是劝进/劝退:

    你可以说一下你在哪个省,算法竞赛地区发展差异极大。如果在弱省的话,是有付出较小学习成本获得一些性价比很高的奖项的机会的。强省就别想了。

×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款