这是一篇算法竞赛入门方向性指南。
竞赛去哪里训练?
cf,俄罗斯网站,比赛一般在晚上十点半,主要训练集中在这里。gym里面有历年区域赛真题。
atc,日本网站,比赛一般在晚上八点。质量很高,推荐初学者打Atcoder Beginner Contest(简称ABC),进阶者打ABC和Atcoder Regular Contest(简称ARC)
牛客竞赛,校赛一般在牛客办。同时牛客也有很多质量很高的算法题,可以用来学算法。有暑假多校训练和寒假算法集训营。B站关注“牛客竞赛”,兰子哥哥万粉女装。
洛谷,面向OI,但是算法都一样,该学还得学。难度标签:红-橙-黄-绿-蓝-紫-黑
代码源,wls和dls办的,推荐买课一起用。代码源的课只能买整个课包,相对比较贵,质量很高,手头不紧的同学很推荐买。
杭电oj,太古老了,日常训练非必要不推荐。每年暑假会办中国大学生程序设计超级联赛,非常有意思。
acwing,Y总办的,可以买课学学算法。
竞赛怎么训练?
先熟悉一下C++的语法,以后所有的相关题目都不再用C语言写了。不推荐去B站看C++教程,浪费时间。具体怎么C转C++下文会讲。
参考群友经验,总结为:
入门把语法和最简单的算法都过一遍,然后开始打abc和cf。
进阶自己去找点博客学算法,基本上cf碰到不会的算法,就可以找题解看看是什么,然后去补上。在abc[A-F],cf div2[A-D],部分的基本要求全部掌握,这是未来几年训练的目标之一。
学和练是基本统一的,具体的算法树可以参看知乎"walkershi",wls发了算法树和学习历程。
编译器用什么?
vs 2010 教育版?达咩
一般推荐用下面这些:
vs code (配环境很麻烦)
sublime text + [插件] fast olympic coding
clion (确实好用,但是cmake有点麻烦)
dev-c++ (最推荐萌新去用的)
cp editor (专门为竞赛而生的)
同时,自己需要配置本机的编译环境,建议是用C++17版本的GNU。
去哪里找资料?
百度、CSDN、知乎、B站、学长手里、各种算法交流群
肯问的人总归要少走弯路的,也可以通过找资料的过程提升自己的信息检索能力,这个能力十分宝贵。
C语言转C++难吗?
真不难。
首先给出c++代码框架
#include<bits/stdc++.h>//万能头,写这一个就够了,不用写别的头文件
using namespace std;//使用std命名空间
int main()
{
/*关流,可以先背一下67行*/
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;//输入一个数
int a,b;
char c;
double d;
cin>>a>>b>>c>>d;//多个一起输入,类型可以混,不需要声明
cout<<"Hello world";//输出字符串
cout<<a<<b<<c;//输出内容
cout<<"a="<<a<<" "<<"b="<<b<<endl;//混合输出
//endl 即为 “endline” 表示结束一行
//一般推荐写"\n"来换行,而不是endl
// 注意:"\n"表示字符串,而'\n'表示单个字符
return 0;
}
然后说一个暴论:竞赛里的C++基本上就是C语言+STL。
因为除了STL部分,只有上述输入输出与C语言不同。
在这个基础上,就可以愉快的刷题啦~
表评论7270