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

📅  最后修改于: 2021-05-30 09:03:35             🧑  作者: Mango

在本文中,我们将学习如何在一个竞争性编程环境中进行全面设置

操作系统

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

下载Ubuntu桌面

文本编辑器

如今,市场上有很多优秀的文本编辑器可供使用,例如VS Code,Sublime文本,Atom,Notepad ++等。
我个人最喜欢的是Sublime Text 3,因为它重量轻,美学极少且功能强大。

下载SublimeText 3

使用语言

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

编译器

现在,如果您使用C++作为主要的编码语言,则必须安装gcc编译器(Linux用户可以跳过此步骤,因为大多数Linux Distros都带有编译器:)),如果不确定是否有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个选项中进行选择。

    如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。