通过一个过程到一个过程的题目集,专为新手提供的一条学习路线,从简到难,让你在刷题的过程中感受游戏的快感(PS:本训练题解较为全面)

Login to join training plan

先来点真实的

无赖流算法修炼指南:从新手村出发,边学边练,一路上分!

玩法与目的

把这份题单当成一场闯关游戏:按关卡顺序学习,逐步解锁新的算法,再通过练习把它们变成自己的技能。

每一关的目标是:能够独立写出代码,讲清楚解题思路,并处理好边界情况。

最终奖励:知识、经验,以及越来越少的报错(确信)。

关于训练题单

新手村

新手村主要是基础语法题,帮助大家熟悉输入输出、变量与数据类型、条件判断、循环、数组和字符串。

通过这一关,你需要能够把简单的题意转化为代码,并养成检查输入范围、用小样例验证结果的习惯。

展露头角

这一关会在基础语法之上增加一些思考。你将继续夯实语法,并接触以下解题方法:

  • 模拟:按照题目给出的规则,一步步还原过程,注意执行顺序和状态变化。
  • 暴力枚举:在数据范围允许的情况下,枚举所有可能的方案,逐一判断是否满足要求。
  • 递归:把问题拆成规模更小的同类问题,明确递归如何推进,以及什么时候结束。

从这一关开始,做题时要关注数据范围和时间复杂度,判断自己的方法能否在规定时间内运行。

势如破竹

这一关需要解锁两项常用技能:排序算法和贪心算法。

1. 排序算法

先学习冒泡排序、选择排序和插入排序,理解比较、交换和移动元素的过程。

再学习快速排序和归并排序,理解它们的分治思想,尽量做到能够手写实现,并了解不同排序算法的时间复杂度和稳定性。

随后熟悉语言提供的排序工具,例如 C 的 qsort、C++ 的 std::sort,并练习自定义排序规则。

学习链接:十大经典排序算法(动图演示)|博客园 https://www.cnblogs.com/onepixel/articles/7674659.html

2. 贪心算法

贪心算法的核心是:每一步都按照某种规则,选择当前看来最优的方案。

局部最优不一定能带来整体最优,因此使用贪心算法时,需要证明所选策略的正确性。

建议从活动安排、区间选择等经典例题入手,理解如何设计贪心策略,再学习交换论证等证明方法。学习的重点是:确定每一步的选择规则,并说明为什么这样选能得到整体最优解。

学习链接1:贪心算法|OI Wiki https://oi-wiki.org/basic/greedy/

学习链接2:从零开始学贪心算法|CSDN https://blog.csdn.net/qq_32400847/article/details/51336300

名震一方

这一关的主角是二分算法。它代码简短、应用灵活,是算法题中非常常用的一项技能。

建议先掌握有序序列中的二分查找,再学习利用可行性判断进行的“答案二分”。使用时,重点关注三个问题:

  • 单调性:二分查找要求序列有序;答案二分要求候选答案的可行性具有单调性,例如随着答案增大,判断结果从“不满足”变为“满足”,且不会再变回去。
  • 判断条件:明确 check(x) 判断的是什么,以及判断结果对应哪一侧搜索区间。
  • 边界与收敛:明确左右端点的含义,保证每次更新都能缩小搜索区间,避免越界和死循环。

写完后,用重复元素、答案位于端点、找不到目标等情况检查代码。练习时,尝试解释每一次边界更新的理由,逐步掌握二分的思路。

博客链接1:2021年 SWPUACM 暑假集训 day1:二分算法|CSDN https://acmer.blog.csdn.net/article/details/118559948

博客链接2:递增整数序列的二分详解|博客园 https://www.cnblogs.com/qswg/p/6251887.html

视频链接:二分算法讲解(共两集)|哔哩哔哩 https://www.bilibili.com/video/BV1T44y1q7nL

Section 1. 新手村

Open

Problem Tried AC Difficulty
P1000   A+B 1863 579 6
P1032   序列求和 3472 506 8
P1033   圆的面积 2412 462 8
P1034   Fibonacci数列 2735 380 8
P1036   if练习 1041 438 5
P1037   中国身份证号码校验 2141 279 8
P1038   水仙花数 1089 383 5
P1039   判断质数 1462 303 7
P1040   分解质因数 1183 284 7
P1043   2的幂次方 1711 281 8
P1084   BMI 体重 831 318 5
P1022   学分绩点 1073 274 7
P1025   神说:签到 780 296 5
P1030   稳定性测试 721 265 5
P1100   B.双阶乘 1102 348 6
P1101   C.格点 849 357 5
P1103   A.求余 652 412 2
 
Enrollees
728
Created By