前言
首先,欢迎各位来到川信雷霆算法训练营。无论你是纯纯的代码小白,还是已经入门的有基础者,相信在这里努力训练后都可以得到提升!
首先为你们简单介绍一下我们训练营的主要训练内容与方向。
我们在做什么?
我们的主要训练目的是为了参加各大算法竞赛
算法竞赛,指的是以算法(和数据结构)为核心主题的编程竞赛。算法竞赛一般要求在规定时间内做若干道题目,并以编程的方式解决问题,可以使用 C/C++/Pascal/Java 等语言(视比赛要求而定)
通俗一点的话来讲:用代码来解决各种问题(数学、思维、甚至是脑筋急转弯)
我们为什么要做这个事情?
1.锻炼思维
在解决问题的过程中,你的思维、逻辑能力会得到极大的锻炼,在学习算法,攻克难题的过程中对整个人的思维和能力扩展是不可估量的
2.算法是“程序员”和“码农”的第一道分水岭
锻炼你的算法能力能最大程度的提高你解决问题的速度,思维。有过算法竞赛经验的科班生比外面培训出来的普通程序员的差别肉眼可见!
3.各种丰富的比赛
在川内、川外都有各类算法比赛:蓝桥、天梯、ACM、各大网赛、线下赛等等......
计算机科班,算法类的竞赛绝对是重头戏,在学校可以获得各种资源来帮助我们提高自我,获得充实的大学生活!
4.奖励
同学,竞赛是有奖金的......
除了奖金外,竞赛获奖后的各种证书可以帮助你争取奖学金、专升本加分、甚至为你以后的工作升职加薪等
在训练营变现出众的同学,还可以后续继续参与各种类型比赛、实际项目等,保证毕业后各种证书,奖励拿到手软。
其次,参与竞赛的好处还包括但不限于:
1)简历:如果你的简历上有各项XCPC的金牌银牌,给你增添亮点答案是不言而喻的。
2)笔试:技术笔试大都必考编程题,有的企业笔试甚至只考编程题,这个环节对于竞赛选手简直不要太香,大家可能只会感叹“哇~又AC了”,所以如果你的算法能力够竞赛标准,招聘笔试对你来说是相对容易的。(论打竞赛对就业的好处)
3)工作中解决问题的能力:在面对各种工作中的问题时,算法往往能让你的代码效率更高,解决方案更好,代码质量更佳。
5.结识志同道合的同伴
任何时候,都要和优秀的人结伴同行。而训练营,就提供了这样一个平台,让你结识同伴,一起学习,一起做项目......
千里之行,始于足下
本篇指南的作用是让大家了解训练营,并开始进行系统学习,提供规划路线和升级材料(各种学习资料)。
从下面开始,是指南的主题内容。
21新生/零基础者
世界上所有的程序员,都是从第一行Hello,World!
开始的
本篇教程与规划是针对新生和零基础人员的,如果不是,可以直接跳过。
我们要进行学习的语言是:C++(C PlusPlus)
它是算法类比赛最常用最正统的语言,也是我们训练营的算法主推语言。
大一新生信息系入学统一学习的是C语言,但是在算法竞赛中,C语言非常难用,且C++完全兼容C语言,所以我们可以直接从C++的语法开始学习。
从零开始,首先安装你的编译器。我们选择devcpp
下载链接: 点我点我!
完成后会得到一个压缩包,直接点击压缩包内的
.exe文件进行安装即可
一路next到
这里,建议将大家在C盘以外的地方建一个文件夹,将它安装到新建的文件夹内。当然直接点install也是可以滴~
安装完成后即可运行,同时桌面上也会出现快捷方式。
我们点开它(貌似这个版本已经做好汉化了)
点击左上角的文件-> 新建 -> 源代码 或者 快捷键ctrl + n 新建一个空文件
就可以在工作区写代码了~让我们写下第一段代码。
(建议大家照着手敲一次,不要直接复制粘贴,同时注意代码内所有的字母,符号全部是英文半角状态!)
#include<iostream>
using namespace std;
int main(){
cout << "Hello,World!" << endl;
cout << "欢迎大家来到雷霆训练营!";
return 0;
}
然后我们点击上方的运行 -> 编译运行 或快捷键f11
同时将这个文件保存为xxx.cpp文件(后缀名是.c就是C语言文件,.cpp就是C++文件,我们这里是用的C++的语法,自然采用.cpp后缀!)
然后程序就会正常执行,弹出这个黑框框。
弹出这个框框并正确输出了内容,说明你本地的环境没问题了,可以直接开始进行学习咯~Hello,World!
这里向大家推荐一个B站的C++语法入门视频
B站视频链接,直接从P3开始看!
暂时先看到第55P就可以了~在这个过程中有任何不懂的地方都可以在群里问管理员。
同时在学习的过程中,会给大家一定的任务来进行考核。预计2周完成这部分的入门
- 第一周任务:学习的过程中记笔记,在这个周你需要学习到第30p(选择结构结束)
你需要用你所学的知识达到这样一个效果:
输入一个学生的成绩,如果他的成绩小于60分,则输出"没及格,需要努力"并换行输出当前成绩还差多少分到60;
如果他的成绩大于60,小于90,则输出"不错,还可以继续努力!"并换行输出当前成绩;
如果他的成绩大于90,小于等于100,则直接输出"你真的很不错!"即可
请尽量多的考虑到各种状况,比如数据不合法等,确保你的小程序在面对任何情况都不会出错!
2.第二周任务:实现一个计算器功能,你需要达到这样的效果
除非用户主动退出,否则计算器一直运行
支持加减乘除四种运算。
虽然可以输入2 -> 回车 -> 输入+号 -> 回车 -> 输入2 -> 回车 -> 得到结果4,
但是我希望你尽可能地让这个计算器贴合现实生活中的计算器
比如输入 2+2,按下回车后直接得出结果为4。
请尽可能考虑程序可能会出BUG的地方,确保你的小程序在面对任何情况都不会出错
特殊情况要做处理:比如除数为0的情况下应该怎么做?
学到这里并完成任务,基本上就算入门咯~
加油!
20级/有基础者
相信各位的代码环境以及配好且至少有了C语言的基础。
那么大家的任务是直接开始在杭电OJ上进行刷题
请在HDOJ上进行注册并开始做题。整个流程在Word文件的附录内
同样也希望大家进行CPP的学习,相信各位在有了C/java等语言的基础上,再转C++会相当快,所以我推荐这个视频
c语言基础快速上手c++
我们学习C++主要是为了使用c++自带的STL库,同时需要对数据结构进行系统的学习。在这里推荐一本书:《大话数据结构》
,这本书可以网上买(拼多多10来块吧)也可以找群里管理要电子版,在川信的雷霆工作室也有实体书,可以登记借阅。
同时配合视频熟悉数据结构与算法(网上一抓一大把,推荐慕课的浙江大学数据结构与算法课程,自行百度),在之后训练营还会请毕业生和部分19,20级的人来给大家讲解一些算法和数据结构。
大家可以直接入门后使用C++来写算法题,就杭电OJ的第11页的100道题。
有不懂或者不熟悉的可以百度,问群里的管理都可以。
你们的任务是:
1.第一周任务:完成杭电OJ的注册,大致了解下学习线路图并开始刷题
(不要被这个学习路线吓到,这只是个参考)
你要了解有哪些常用数据结构,入门C++(不用学类与对象,只需要会语法,知道STL库有哪些,怎么用即可,这是个需要用实践来堆的过程,大家慢慢来)。
同时开始进行数据结构的学习!
本周需要你使用C++在杭电OJ的第11页完成前8道题,要求不可以抄袭、直接COPY代码!这些题是完全用不到数据结构的很基本的语法题,大家安心做,不会就问~
2.第二周任务:
数据结构至少要学到基本链表、栈、队列等
会使用C++的 Stack,queue ,vector,Map这四个常用的STL库。同时完成杭电OJ前20道题,最好学以致用,想想这道题能不能用STL?能不能用C++的语法来比较方便的解决?
你们的考核会让负责人主动与你们沟通,同时查看你们的做题情况~
如果觉得这些都 so easy! 那么你可以各大OJ上(包括杭电OJ第11页的后80道题)进行刷题啦!详情可以咨询群内的管理员们,他们都是过来人。
写在最后
首先,再次欢迎各位来到雷霆算法训练营。我们川信在四川的专科院校中,应该算是算法第一的学校了,这是近两年来指导老师和以往的参赛选手们的努力和付出才拿下的成绩。
但是我们不甘于只做四川专科的第一,其实严格说来,在全国范围内,四川属于算法竞赛的弱省(整个西南地区都算弱),往上比四川本科高校,我们仍然差距很大,与同级的院校相比,暂时也还比不过浙江那边的几所专科院校,甚至往下了比,各种高中生、初中生把我们吊着打(因为算法类竞赛就是这些OI爷最顶,人就是从小专门训练这个来获取保送名校资格的)。我们不服输,不认输,所以创建算法训练营...别人能做到的,我们凭什么做不到?
道阻且长,衷心的希望我们所有人都能怀揣着一颗永不言败的赤子之心,奋发图强,一飞冲天。
梦在远方,路在脚下。
不鸣则已,一鸣惊人。