paoxiaomo的XCPC算法竞赛训练经验

楼主作为一个普通二本的ICPC选手,在0基础的情况下凭借自学,获得过南昌邀请赛金牌,杭州区域赛银牌,一路上经历过不少的跌宕起伏,如今将曾经摸索出来的学习路线分享给大家

一,语言基础

学习C++语言基础语法,尝试简单循环,递归等算法的实现,学习C++STL库,了解基本用法,刷洛谷的入门,基础题,熟练运用c++进行基本的实现,夯实基础。掌握基本调试技巧。

二,算法筑基

针对洛谷上的知识点题单进行板刷,掌握动态规划,图论基础,数论基础等基础算法,如:

●双指针/滑动窗口

●DFS/BFS

●动态规划基础

●图论基础

●数论基础

一般做题难度在绿题和黄题之间,可以参加codeforces的div3,4

三,算法进阶

1,研究数据结构

掌握如下数据结构的原理,最好能手撕:

●树状数组

●线段树(最好会可持久化线段树)

2,掌握进阶算法

●各种数位DP

●网络流

●字符串基础(kmp/字典树)

3,实战训练

●CF每周都打,目标1600+,补到div2D难度的题

●VP区域赛并补到铜牌题

ACM过往的拿牌团队中,至少有一人达到1600分,到达1600后初步有冲击铜牌的水平

四,比赛冲刺

学习所有高级算法几乎是不可能的,我们要有取舍。

1,高阶算法学习

部分高阶算法可以不用全部学会,可以选择几个方向重点突破,我列举其中几个

●各种平衡树应用(Link-cut-tree,分裂,合并)

●后缀自动机以及后缀自动机相关应用(自动机上DP等)

●计算几何(旋转卡壳等,需要有一套无惧卡精度的板子)

●多项式全家桶(NTT,FFT等)

2,思维强化

●CF冲击1900(补题到div2E)

●VP正式比赛补题到银牌,自己擅长的方向补到金牌

3,战略优化

●制定团队分工和开题策略

●一起VP磨合沟通能力

在这过程中可以建立个人代码板子库,我的代码板子库:https://gitee.com/paoxiaomo/xcpc,实战可以有效提升A题速度

个人训练记录:

相关推荐
ideaout技术团队1 天前
leetcode学习笔记2:多数元素(摩尔投票算法)
学习·算法·leetcode
代码充电宝1 天前
LeetCode 算法题【简单】283. 移动零
java·算法·leetcode·职场和发展
不枯石1 天前
Matlab通过GUI实现点云的均值滤波(附最简版)
开发语言·图像处理·算法·计算机视觉·matlab·均值算法
不枯石1 天前
Matlab通过GUI实现点云的双边(Bilateral)滤波(附最简版)
开发语言·图像处理·算法·计算机视觉·matlab
白水先森1 天前
C语言作用域与数组详解
java·数据结构·算法
想唱rap1 天前
直接选择排序、堆排序、冒泡排序
c语言·数据结构·笔记·算法·新浪微博
老葱头蒸鸡1 天前
(27)APS.NET Core8.0 堆栈原理通俗理解
算法
视睿1 天前
【C++练习】06.输出100以内的所有素数
开发语言·c++·算法·机器人·无人机
保持低旋律节奏1 天前
CPP——OJ试题,string、vector、类(题三)初步应用
c++
君生我老1 天前
C++ string类常用操作
c++