MIT License

项目介绍

the-hyp0cr1t3/CC 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 MIT License 许可证,目前获得 994 个 Star、210 次 Fork。

仓库全名
the-hyp0cr1t3/CC
开源许可证
MIT License
Star 数
994
Fork 数
210
未关闭 Issue
2

README 摘要

Getting into Competitive Coding Programming is all about writing code to solve problems or tasks. Competitive programming makes a sport out of this, where contestants compete (usually online) to solve a bunch of such problems in a limited amount of time. What's in a problem? Problems are primarily math, logic and/or algorithm based and typically look something like this. Such problems usually consist of a statement…

完整内容见 GitHub 原始 README 或本页 。

常见问题

CC 用什么语言开发?

主要使用 C++ 编写,采用 MIT License 许可证,目前有 994 个 Star。

CC 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 CC 的源码?

可以直接克隆仓库:git clone https://github.com/the-hyp0cr1t3/CC.git,默认分支为 master;安装与运行步骤见仓库 README。

CC 最近还在维护吗?

仓库最近一次更新为 2023年8月30日,当前有 2 个未关闭 Issue;Star 数为 994,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Everything competitive programming related - introductory guide, topics/concepts, practice problems, snippets & templates, tips & tricks and more.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1434
价值分
661
活跃状态
活跃

语言占比

C++

README

Getting into Competitive Coding

Programming is all about writing code to solve problems or tasks. Competitive programming makes a sport out of this, where contestants compete (usually online) to solve a bunch of such problems in a limited amount of time.

What’s in a problem?

Problems are primarily math, logic and/or algorithm based and typically look something like this. Such problems usually consist of a statement (that details the task), the input and output format, constraints on the input and some examples (will be further explained later on).

Try this problem. Read the statement carefully and try to understand what it is asking. Once you figure it out, all that’s left is to code it.

Here’s what one of the many possible solutions looks like.

C++ code
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    while(n--) {
        string s;
        cin >> s;
        if(s.length() <= 10)
            cout << s << endl;
        else
            cout << s.front() << s.length()-2 << s.back() << endl; 
    }
    return 0;
}

Choosing a language

Most competitive programmers prefer C++, and for good reason. However, Java and Python are also fairly popular. Knowing a programming language is the only pre-requisite. While I do say that, you are by no means expected to be an expert. If you can manage a basic hello world and can work with loops and conditionals, you are good to go.

Note: The code snippets in this guide will be in C++ since it is arguably the best language for competitive programming and not because I do not know any other languages :/ UPD: I learnt a little bit of Java and Pythom :)

Setting up an IDE

If you haven’t already set up an IDE, you may find use for one of the following links. I personally use Sublime Text, with VS code being my second choice, but it is a matter of personal preference.

Competitive coding platforms

There are many platforms that host programming contests and allow you to practice solving problems, among other things. One such platform is Codeforces, which I primarily use and recommend.

Here is a detailed guide I’ve written about problem statements, how contests work and the rating system on Codeforces (and a few other platforms).

Get started

Here are a few problems for you to get started with. They’re really simple and should help you understand how to submit code on online platforms.

Click

Once you’re done with these, head on over to the problemset I liked bugabooset better on Codeforces and sort problems by rating. Solve some easy problems till you get a feel for it.

What’s next?

Once you familiarize yourself with these things, here are some things you could consider doing next:

  • Time complexity: Take a look at time and space complexity, as you will soon realise that not all logically ‘correct’ solutions pass the given constraints.

  • Learn new concepts/topics: Develop your problem solving skills by learning new topics, one at a time. Here’s a collection of some common beginner topics and problems on the same. The cses problemset is another great place to practice standard problems from various topics.

  • Practice: Turn to the codeforces problemset, and sort by difficulty and tags. Grind problems because there’s nothing like practice, practice, practice.

  • Contests: Participate in live contests or take virtual ones. Virtual contests are a way to participate in or experience old contests that have already happened in the past.

The secret formula Practice
In all seriousness though
Learn new topic > Practice problems > Improve speed > Learn new topic > Practice ... Rinse and repeat.

Extras

评论

暂无评论