首页 > 编程语言 >新手编程竞赛入门指南 [Cloned]

新手编程竞赛入门指南 [Cloned]

时间:2024-09-14 09:24:47浏览次数:1  
标签:竞赛 题目 入门 编程 Cloned 算法 程序设计 新手

欢迎加入编程竞赛协会(QQ群:)
进入协会QQ群,联系纳新管理员xixussmy,需提交信息(学院、班级、姓名、学号,vjudge帐号),通过审核后邀请加入“程序设计竞赛组”开展编程学习做题训练。受人数限制,一段时间不参与活动者会被移除。

新手编程竞赛入门指南

编程是程序设计的简称。计算机通过各种各样的程序来实现其功能。因此,学习编程是学习计算机专业的基本要求和技术基础。

计算机程序设计需要依赖于一种程序设计语言来表达。因此,在学习编程之时要先选择一种程序设计语言,一般是C/C++、Java、Python中的一种。然后,就像我们从小学习说话写字、组词造句、段落作文一样,勤加练习多做题,积累各种情况下编写程序的经验,自然而然的就学好了。

我们接下来介绍一个自学编程序的路径,让你从毫无经验的编程小白成长为代码高手,尽快地进入编程竞赛的世界。

第一步(1~2周)快学语法,学到循环

  • 首先,选一本C语言或C++的入门书籍,或者在B站上找一套课程(例如课程1课程2),边看视频边看书,快速地理解C语言语法上的一些基本概念(如输入输出、变量、常量、类型、运算符、表达式、语句),并且跟着看书或视频把上面讲的例子实现出来,看到程序运行结果,直到讲完程序的控制结构(顺序、分支和循环)。
  • 然后,注册一个OJ帐号,直接使用vjudge也可以(OJ使用教程:vjudge使用洛谷使用教程怎么使用AcWingvjudge绑定洛谷帐号AtCoder注册使用Codeforces注册使用),找一些入门的题单(如洛谷题单信息学题单HDU入门题),在输入输出、顺序、分支和循环的章节挑一些简单的有想法的题目做。在这个过程中慢慢地克服各种困难(如编程环境、语法错误,使用OJ、题目交不对等)。遇到个人解决不了的问题,逐步学会看书、网上查资料、问有经验的人,具体且尽快地解决一个个小的编程入门题。
  • 这一步大概花费1至2周时间,要做20至30个题目,看书和视频的时间占30%,70%的时间用来写程序。如果每天投入4到8小时,分配2天看书和视频、3至5天做题。如果每天投入2小时左右,分配4至5天看书和视频、5至10天做题。
  • 关键之处是:不要贴代码。可以多看题解,弄懂思路,模仿着写,但是不要贴代码。做不出来的题目跳过去也没关系,不追求全部自己想自己写,千万不要贴代码。

第二步(2~4周)数组函数,学完语言

  • 要学习数组、字符串、函数、递归、指针、结构体等章节。方法与第一步相同,分成看书和视频、OJ做题两部分,时间分配仍是30%学知识、70%做题。如果每天投入时间较多要花费2~3周,每天投入2~3小时大概需要4周左右。整体上要做30至50个题目。
  • 关键点仍是不要贴代码。针对具体的题目,多看多学他人的程序,理解程序为什么这么写,仍以模仿他人程序为主。从这一步开始,题目和程序逐渐变得复杂,要注意理解题目,注意理解程序的结构。
  • 做到这里,你有足够的能力在程序设计课程中取得优异的成绩。有条件要参加合适的训练赛,锻炼在时间有限的条件下构思程序的能力。

第三步(半年左右)算法入门,数据结构

  • 从这一步开始就进入到算法(枚举、递推、贪心、分治、搜索、动规)和数据结构(线性表、树和图、STL)的基础内容。学好这部分,你有足够的能力在这两门课中取得优异的成绩,并且你已经成为“算法竞赛集训队”的一员了。
  • 首先,选择一套优秀的算法竞赛入门教材,读书学习知识在oj上完成例题和部分习题(要做200题左右)。这里推荐的有三本,选哪一本开始都很不错。
    1. 刘汝佳《算法竞赛入门经典(第二版)》, 入门经典题目
    2. 罗勇军《 算法竞赛》,算法竞赛题目
    3. 洛谷《深入浅出程序设计竞赛 基础篇》,洛谷深基题目
  • 其次,平均每周至少参加一次训练赛,提高自己的竞赛水平,并且在赛后把适合自己提升的题目补出来,新知识点学会(要做100题左右)。这里推荐AtCoder Beginner ContestCodeforces Round,它们每周都会有针对个人的不同难度比赛,根据比赛情况计算个人rating(能力值)。我们也会定期组织协会比赛,希望各位踊跃参加。

第四步(永无止境)竞赛选手

  • 待补充

申请加入竞赛集训队

加入“程序设计竞赛组”学习训练,至少完成第二步,联系集训队管理员aries获取加入竞赛集训队要求,通过审核邀请加入。


Cloned from sdkdacm's article.

标签:竞赛,题目,入门,编程,Cloned,算法,程序设计,新手
From: https://www.cnblogs.com/xiins/p/18413324

相关文章

  • Unity网络编程(1)线程
    引入:网络编程基础认识1.了解操作系统的分时操作:操作系统将时间划分为很多个片段,尽可能均匀地分配给正在执行的线程获得时间片的进程得以运行,其他则在等待CPU在这些进程上来回切换,频密,让人感觉多个进程在同时执行2.概念认识:(1)进程是程序的边界,程序与程序间以进程为隔离 ......
  • 【HBuilderX-从下载到项目创建】编程初学者适用的HBuilderX开发环境(超详细的)下载安装
    简介:HBuilderX是一款由DCloud公司开发的集成开发环境(IDE),专为前端开发设计,同时也支持多平台应用开发。它支持HTML、CSS、JavaScript、Vue、React、Uni-app等多种编程语言和框架,具备代码编辑、调试、测试等功能,并且提供了丰富的插件生态系统以扩展其功能。“......
  • 联网对话功能上线,CodeGeeX智能编程助手再度升级!
    CodeGeeX上线联网获取信息的新功能!进一步提升在编程场景中的实用性和智能水平。值得一提的是,联网对话这一创新功能,目前在编程工具的同类型产品中,是独一无二的。下面我们就来一起看看这一创新为开发者带来的价值,以及如何运用它来提升编程效率和问题解决的能力。首先,打开联网获取信息......
  • 全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback
    全网最适合入门的面向对象编程教程:47Python函数方法与接口-回调函数Callback摘要:回调函数是编程中一种非常常见的模式,用于将函数作为参数传递给其他函数或方法。这种模式在Python中广泛应用于事件处理、异步编程、函数式编程等场景。原文链接:FreakStudio的博客往......
  • 如何高效记录并整理编程学习笔记?
    在编程学习的海洋中,高效的笔记记录和整理方法就像一张珍贵的航海图,能够帮助我们在浩瀚的知识中找到方向。如何建立一个既能快速记录又易于回顾的笔记系统?如何在繁忙的学习中保持笔记的条理性?让我们一起探讨如何打造属于自己的编程学习“知识宝库”! 方向一:笔记工具选择以下是几款......
  • 《C++编程规范》六、构造、析构与复制
    目录第47条以同样的顺序定义和初始化成员变量使用这些函数之所以需要小心,其中一个原因是几乎一半的情况下编译器都会为我们生成代码。另一个原因是,C++默认时总是将类当作类似于值的类型,但是实际上并非所有的类型都类似于值(见第32条)。知道何时应该显式地编写(或者禁止)这些特殊......
  • 【编程小白必看】使用Selenium进行网页自动化操作操作秘籍一文全掌握
    【编程小白必看】使用Selenium进行网页自动化操作操作秘籍......
  • 为什么那么多开源软件都用netty来做网络通信编程框架?
     1、用netty来做网络通信编程框架而不是我们自己去基于JDKNIO来编程的好处有如下这些:(1)、netty支持常见的应用层协议(如:HTTP、FTP、DNS等),还可以支持自定义协议;(2)、netty可以自动解决网络编程当中的粘包与半包问题;(3)、netty还可以支持流量整形;(4)、netty对于网络通信当中......
  • 编程小白如何成为大神?大学新生的最佳入门攻略
    方向一:编程语言选择选择原则:兴趣驱动:选择自己感兴趣的编程语言开始学习,兴趣是最好的老师。实用性:考虑语言的实用性,如Python、Java、C++等都是广泛使用的编程语言。职业目标:根据未来职业规划选择语言,例如想做数据分析可以学Python,想做安卓开发可以学Java。推荐语言:Python:语法简洁,易......
  • C++并发编程的学习(9-13)
    文章来源:恋恋风辰的编程笔记https://gitbookcpp.llfc.club/sections/cpp/concurrent/concpp02.html容器存储:thread类没有拷贝构造函数,所以使用容器存储它时,不能使用push_back(),需要使用点击查看代码voiduse_vector(){std::vector<std::thread>threads;for(u......