跳至主要內容

ACM算法竞赛中在编辑器中使用输入输出样例(CPH)

Algorithm技巧Algorithm技巧大约 3 分钟约 846 字全民制作人ikun

通用方法

我们可以在编辑器中创建三个文件,一个是main.cpp,一个是test.in,一个是test.out分别用来写代码,输入输入数据,显示输出数据

这种方法的好处是不需要插件,在任何编辑器中都可以实现,例如Devc++,sublime,vscode,clion...

可以在比赛的时候使用,例如篮球杯,天梯赛。。。

以Clion为例:

image-20230810122412590
image-20230810122412590

文件结构长这样,然后使用freopen来读取文件和写入文件,加上ifndef

ifndef 的好处就是,很多OJ有ONLINE_JUDGE ,因此你本地写了代码可以直接交,不会报错,也不用删除这一段代码

#ifndef ONLINE_JUDGE
    freopen("../test.in", "r", stdin);
    freopen("../test.out", "w", stdout);
#endif

个人常用的模版文件如下(打codeforces比较快):

#include <bits/stdc++.h>

#define int long long
#define yes cout << "YES" << endl;
#define no cout << "NO" << endl;
#define IOS cin.tie(0), cout.tie(0), ios::sync_with_stdio(false);
#define cxk 1
#define debug(s, x) if (cxk) cout << "#debug:(" << s << ")=" << x << endl;
using namespace std;

void solve() {
    int n;
    cin >> n;
    vector<int> a(n + 1);
    for (int i = 1; i <= n; i++) cin >> a[i];

}

signed main() {
    IOS
#ifndef ONLINE_JUDGE
    freopen("../test.in", "r", stdin);
    freopen("../test.out", "w", stdout);
#endif
    int _ = 1;
    cin >> _;
    while (_--) solve();
    return 0;
}

在solve函数中写完代码可以直接交OJ,例如codeforces,Atcoder,落谷,acwing 这些都可以通过

编辑器插件

下面介绍的方法都和一个CPH的东西有关,可以现在浏览器中安装插件(可能需要代理):

链接:https://chrome.google.com/webstore/detail/competitive-companion/cjnmckjndlpiamhfimnnjmnckgghkjblopen in new window

image-20230810123235420
image-20230810123235420

没代理的话就去GitHub碰运气进去吧https://github.com/jmerle/competitive-companionopen in new window

image-20230810123539787
image-20230810123539787

安装完这里会显示一个加号,点击这个可以把本次比赛页面的所有题目弄到编辑器中,之后会遇到。

Clion插件

在Clion中,推荐使用插件AutoCp,该插件需要保持Clion为最新版本

链接:https://pushpavel.github.io/AutoCp/guide/getting-started.html#prerequisitesopen in new window

image-20230810122803895
image-20230810122803895

安装完后,右侧会显示这个东西,找不到的话,可以在上面的View里面找一下:

image-20230810124421972
image-20230810124421972

然后随便找一个比赛,点CPH上面的加号:

image-20230810124547364
image-20230810124547364

然后回到编辑器中(由于这个比赛A题搞不下来,所以我换了一个Div2):

image-20230810124812902
image-20230810124812902

然后你就会得到这样的画面:

左边的几个题目全都帮你拉下来了,右边的样例输入输出也拉进来了,

image-20230810124857874
image-20230810124857874

写代码测试:

下面是通过的样子:

image-20230810125431000
image-20230810125431000

下面是不通过的样子,可以点进去看哪里不一样

image-20230810125216982
image-20230810125216982

如果你有自己的初始代码模版,也可以在这里添加:

image-20230810125651374
image-20230810125651374

Vscode

搜索安装如下插件:

浏览器安装的插件在Clion里面讲过了,步骤也是一样的,

image-20230810133823322
image-20230810133823322

然后网页上面点那个加号,回到vscode就会显示让你创建文件,我把python,java之类的都删了,因为我只需要用 c++

image-20230810134712153
image-20230810134712153

然后界面就出来了,右边的submit是用来提交平台的,不过好像只有火狐浏览器有这个插件

image-20230810134812771
image-20230810134812771

Sublime Text

参考https://juejin.cn/post/7177570367844646971吧open in new window

用法和上面一样

上次编辑于:
贡献者: yunfeidog