本帖收录部分建议,以帮助选手在不提供 NOIlinux 2.0 环境的考点避免出错。这里的错误主要指本机编译通过但在 NOIlinux 中 CE。
如有其它建议,欢迎回复。欢迎转载本帖。
使用这些建议时请确保你理解其内容,由于使用这些建议造成的问题与本帖作者无关。
用 #include<bits/stdc++.h>(内含 OI 通常能用到的所有头文件)而不是逐个写头文件,以免实际上漏了头文件但本地环境自动补齐。 把整个程序装进自己的 namespace,以免和库中的名称冲突(比如 next 和 pipe) 如果题目没有特别说明,编译选项尽量加上 -std=c++14。如果这样不能编译(指的是编译器版本过低不支持 C++14 而不是你的程序编译错误!),就至少加上 -std=c++11。 编译选项加上 -Wall,让编译器提醒一些常见错误,比如函数不写返回值。 编译选项加上 -fno-ms-extensions(关闭一些和 msvc 保持一致的特性,例如,关闭后不标返回值类型的函数会报 CE 而不是默认为 int)。 示例程序:
#include<bits/stdc++.h>
using namespace std;
namespace my_namespace{
int main(){
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
};
int main(){
return my_namespace::main();
}
编译选项:
g++ a.cpp -o a -std=c++14 -O2 -Wall -fno-ms-extensions
-
函数无返回值在低版本g++中开O2概率性正常执行,高版本g++中必re。
-
小心bits的斜杠在win下反过来打也能过编
-
最后几分钟把ide关掉后在终端下编译每个程序(而不是ide中用快捷键),避免误操作敲字符进去
-
size命令检查静态内存
-
开内存检测跑极限数据(win下别忘了开栈)
共 8 条回复
还有一条:亲身经历,万能头的h别打成H,本地编译能过,但是H可以过本地编译
%%%
qp
前排的前排的前排的前排的前排
qp
qp
前排的前排
前排