📜  设置 C++ 竞争性编程环境

📅  最后修改于: 2021-10-24 12:57:16             🧑  作者: Mango

在本文中,我们将学习如何设置一个多合一的竞争性编程环境

操作系统

始终建议使用基于 Linux 的操作系统。之所以如此,是因为您不仅会学到一些更好的系统专有技术,而且还能获得一些预装的编码工具。
我自己强烈推荐一个 Linux 系统。对于初学者来说,Ubuntu 非常好。高级用户可以使用 ArchLinux 或 Kali Linux。即使您不想更改操作系统,也请使用最新版本的 Windows(7 或更高版本)。

下载 Ubuntu 桌面

文本编辑器

现在市场上有很多不错的文本编辑器,比如 VS Code、Sublime text、Atom、Notepad++ 等。
我个人最喜欢的是 Sublime Text 3,因为它轻巧、美观且功能强大。

下载 SublimeText 3

使用语言

现在是选择要使用的语言的时候了。大多数人使用 C++ 作为他们的主要编码语言。这主要是因为它的速度、清晰度和广泛的支持。因此,如果您不熟悉编码,则应该使用 C++,但如果您不了解 C++ 而是了解其他语言,请尝试只专注于该语言。大多数 CP Online 评委都会做诸如可变时间限制之类的事情,而且都是针对其他语言的。 IE。如果您的语言比 C++ 慢 2 倍,那么与 C++ 程序相比,您也会获得 2 倍的时间限制。

编译器

现在,如果您使用 C++ 作为主要编码语言,则必须安装 gcc 编译器(Linux 用户可以跳过此步骤,因为大多数 Linux 发行版都带有编译器 :)),如果您不确定是否有 gcc 编译器或不是;打开shell(即cmd)并执行以下代码。如果你得到答案,那么你就可以开始了。如果没有(即系统不理解命令),您必须先安装编译器。

g++ – 版本

下载 MinGW 编译器

最终设置

现在这是本文最重要的步骤……“修饰”。

    CP 模板

    #include
    using namespace std;
    void solve();
    int main()
    {
       ios_base::sync_with_stdio(false);cin.tie(NULL);
       
       #ifndef ONLINE_JUDGE
       freopen("input.txt", "r", stdin);
       freopen("error.txt", "w", stderr);
       freopen("output.txt", "w", stdout);
       #endif
       
       int t=1;
       ${2:/*is Single Test case?*/}cin>>t;
       while(t--)
       {
          solve();
          cout<<"\n";
       }
       
       cerr<<"time taken : "<<(float)clock()/CLOCKS_PER_SEC<<" secs"<

    如果您使用的是 Sublime Text,请按照以下步骤获取模板

    打开 sublime 并转到工具>开发人员>新代码段并单击它
    用上面编写的代码替换现有代码并用某个名称保存它。

    如果您使用其他一些文本编辑器,这里是您应该使用的模板:

    #include 
    using namespace std;
    void solve();
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
      
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("error.txt", "w", stderr);
        freopen("output.txt", "w", stdout);
    #endif
      
        int t = 1;
        /*is Single Test case?*/ cin >> t;
        while (t--) {
            solve();
            cout << "\n";
        }
      
        cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl;
        return 0;
    }
    void solve()
    {
    }
    

    屏幕设置

    所有编码站点都使用文件比较方法来检查答案。这意味着他们将通过您的程序的输出存储在一个文本文件中,并与实际的应答文件进行比较。
    因此,您也应该这样做。您需要做的是创建一个文件夹,并在其中创建 3 个文件 input.txt、output.txt 和 error.txt。您还应该将 cpp 代码放在这里。之后,您应该将编辑器配置为如图所示的布局:

    注意在编辑器中打开的文件。

    添加在

    建议您随身携带所有代码的副本。因此最好使用版本控制工具,例如 git。
    通过使用 Git,您可以派生出您以前编写过的任何代码。
    我编写了一些代码来自动化提交过程(它需要 SublimeText、Linux OS 和 Git)
    下载 GIT

    { 
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}\\\\${file_base_name}\"", "file_regex": "^(..[^:]):([0-9]+):?([0-9]+)?:? (.)$",
    "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}\\\\${file_base_name}\" && \"${file_path}\\\\${file_base_name}\" < input.txt",
    "working_dir": "${file_path}", 
    "selector": "source.c, source.c++",
       
    "variants": [
     { "name": "Run + Commit",
    "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}\\\\${file_base_name}\" && \"${file_path}\\\\${file_base_name}\" < input.txt && git add test.cpp && dd if=\"${file}\" of=*/Enter the location of your Programming folder her/*/name.txt bs=10 count=1 && git commit -F name.txt ",
     }
     ]
     }
    

    使用上面的代码;转到 Sublime Text>Tools>Build System>New Built System 并粘贴此代码。使用名称保存文件。然后再次转到工具>构建系统并选择您为我们的新代码选择的名称。
    全做完了…
    现在您可以使用 CTRL+SHIFT+B 运行您的 CPP 代码并从 2 个选项中进行选择。