为什么要用 NOI Linux 2.0?先看下面这段代码:
#include <bits/stdc++.h>
using namespace std;
int y1 = 10, next = 100;
int main() {
cout << y1 << endl;
return 0;
}
在 Windows 系统上,这段代码可以正常编译运行,但是在 NOI Linux 2.0(也就是 NOI 系列赛事评测环境中)上,使用 g++ a.cpp -o a -O2 -std=c++14 -static -Wall
进行编译,这段代码将会编译错误,提示 y1
和 next
这两个标识符在别的地方已经被定义过了。如果不使用 std
命名空间,或者使用低版本的编译参数,或者把这几个变量放到局部去定义,就不会出现这个问题。
于是我们可以有一个直观体验,如果本地用的是 Windows 的话,可能交上去的代码因为奇妙的原因无法通过编译,从而爆零。因此,我们要学习在本地使用 NOI Linux,从而减少这种非智力丢分。
由于我并没有打过 OI,这是第一次或许有机会参加,所以还是要稍微学习一下怎么用这些东西。
在终端下输入 ulimit -s <num>
可以将栈空间更改为 num
KB(如 ulimit -s 262144
可以将栈空间改为 256 MB),ulimit -s unlimited
可以将栈空间改为无限制。ulimit -a
可以查看各项资源的限制情况。
参考文献: