📜  如何让竞争性编程变得有趣?

📅  最后修改于: 2022-05-13 01:58:11.764000             🧑  作者: Mango

如何让竞争性编程变得有趣?

竞争性编程是程序员根据需求和提供的规范制作程序的领域。通常,在大学的第一年或第二年,工程领域的很大一部分学生从互联网上各种平台上的竞争性编码开始。许多人对 CP 学习各种算法和使用各种语言(如Python、C++、 Java等)进行编程产生了浓厚的兴趣。但有些人因为每次都得分相同或在适当的时候没有进展而没有发现它有趣。

如何使具有竞争力的编程变得有趣

如果您遇到同样的情况,让我们提醒您,仅具备编码语言和算法的基本知识的竞争编程一开始可能在激烈的竞争环境中似乎毫无用处。但是,这对世界上所有的程序员来说都是共同的。曾经有一段时间,当今的顶级程序员仅具备基本的编程知识就开始编程。与其放弃,您应该更多地关注解决简单问题的任何其他新方法,这可能会在以后证明比以前的方法更有效。

查看下面提到的技巧和策略,以使竞争性编程对自己更有趣和更有价值

1.清除你的基本概念

第一步应该是清楚地理解数据结构的基本概念,如数组、字符串、矩阵、链表、堆栈、队列、树、二叉树、二叉搜索树、排序技术、堆和图,这是竞争编程的基础.您目前可能不了解所有类型的数据结构,但是您所学的知识应该在您的脑海中一清二楚,因为将来会以其他方式使用它来构建新的程序或软件。除此之外,尝试改进您的代码,使其更高效并减少计算时间。

2. 你应该在哪里学习编码?

互联网上提供了大量教程和课程,为您提供有关编码和竞争性编程的知识。你可以参考那些教程。此外,我们的 GeeksforGeeks 平台上提供了许多课程和直播课程,您可以在其中以您的速度和方便的速度开始学习和掌握竞争性编程。除了参加讲座和教程之外,在为程序编写代码的同时尝试自己解决问题并制定逻辑。

3. 选择哪种语言?

如果您是初学者,建议您开始使用 C 语言学习编程基础知识,因为这是最基本的语言并且易于理解。这将使您对各种搜索算法、排序技术以及创建各种结构(如树、图等)的基本概念更加清晰。在您明确这些概念并且您有足够的信心进入竞争世界之后,开始竞争性编程。由于现在你的概念很清楚,随着时间的推移你会逐渐产生兴趣。

4. 从初级问题开始

此外,从一些简单的初学者问题开始。如果一开始就开始找硬核的CP问答题,反而会破坏你对CP的兴趣,认为编程不适合你,逐渐走向失败。而是从简单的问题开始,尝试以多种方式编写同一个程序,以了解如何以多种方式编写程序。

如果您是初学者,还建议您阅读其他程序员的社论和解决方案。尝试了解问题背后的逻辑以及他们如何解决问题。这将使您熟悉您可能不知道的新算法和概念。与此同时,您还可以观察到随着您的绩效和效率的提高,您在全球/国家基础上的竞争排名以及您的评级。您可以在不同的平台上看到许多顶级编码器。您可以关注他们,也可以观察他们解决问题的方法。

但请始终尝试先自己解决问题,然后再参考其他解决方案。此外,尝试寻找可以解决相同问题的其他方法。请记住,可以通过多种方式解决基于逻辑的问题。您需要找到最有效且易于使用的一种。

遵循“不重复自己”的原则。与其多次编写单个代码,不如创建一个可以在需要时调用的函数或类,或者为常见类型的对象创建一个单独的类。

例如,如果你在一个办公室里取几个员工的输入数据,然后多次编写一个代码,最好创建一个类对象 Employee 它将具有Employee id,name,department等基本属性,因此它成为更有效的代码。

5. 给足够的时间练习

除非有足够的练习,否则学习是不完整的。即使您已经学习了与不同编码语言和数据结构相关的所有概念和理论,但在您花足够的时间练习之前,它是不完整的。经常练习编程和解决问题,让你逐渐成为一个高效的程序员。

6.关注现实生活中的问题和事件

专注于解决一些现实生活中的问题。例如,当您去杂货店时,店主会记录出售给谁的商品和数量。您可以开始为此编写一个高效的程序。如果输入一些像“饼干”这样的字母“b”,那么数量会增加+1。同样,对于杂货店的其他商品,我们也可以这样做。这有助于获得对竞争性编程的兴趣并了解其在现实世界中的重要性。

7.参加各种测验和比赛

逐渐地,随着您的技能提高,尝试参加各种比赛,例如 SnackDown、Hackathon 等。不要担心你可能会在第一轮被淘汰。甚至参与也是竞争性编程发展取得进展的重要因素。

一般建议:

从您最熟悉的编程语言开始。对于竞争性编程,最好练习用Java、C++、 Python等编写程序。用 C 语言编写代码可能会有点冗长,因为排序函数和其他一些函数在 C 中没有预定义。此外,C 语言的语法有点冗长,需要时间来写。

循序渐进的实践和努力可以带你成为竞争性编程领域的佼佼者。你只需要开发和学习所有新的算法,持续的练习将帮助你实现你的目标。

用 C++ 编写时的一些技巧

原生 C++ 语言随着时间的推移进行了升级,以使 C++ 编码更加高效。如果您正在为竞争性编程做准备,那么这些技巧可以帮助您很多,因为这可以减少程序的运行时间并减少编写时间。

C++14
#include 
using namespace std;
  
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cout<<"Welcome to GFG!"<


C++14
#include 
using namespace std;
  
int main() {
  
    cout<<"Welcome to GFG!"<


这提高了效率并减少了 C++ 程序中的执行时间,而不是使用类似的方法:

C++14

#include 
using namespace std;
  
int main() {
  
    cout<<"Welcome to GFG!"<

此外, 具有许多预定义函数,可以在使用 C++ 编写竞争性编程代码时轻松使用,例如 sort()、map find(),从而显着减少您的时间,这是竞争性编程的一个重要因素.