一些可能没什么用的整理(持续更新)
\(1.\) 用 special judge 将下发 spj.cpp 按 F12 运行一下, win+R 打开 cmd,将 spj.exe 拖进去,再将 输入文件 1.in 拖进去, 再将 自己的 输出文件 my.out 拖进去,再将 输出文件 1.out 拖进去,按enter ,检查是否正确。
\(2.\) 手打的对拍
#include<bits/stdc++.h>
using namespace std;
int main(){
int i=0;
while(1){
printf("%d\n",++i);
system("make.exe");
system("std.exe");
system("my.exe");
if(system("fc std.out my.out")) break;
}
return 0;
}
\(3.\) 如何检查自己程序的内存,防止MLE,可以试试如下代码,可以输出所用的空间,单位MB。
#include<bits/stdc++.h>
using namespace std;
bool _u;
int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-f;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
return x*f;
}
//一些全局变量和一些函数
signed main(){
//你的程序
bool _v;
fprintf(stderr,"%.3lf\n",abs(&_u-&_v)/1048576.0);
//这是为了防止你没注释它(1048576=1024*1024)
//fprintf 在 freopen 输入输出时不会输出
return 0;
}
\(4.\) c++ 11 手动开栈,有些时候 dfs 时,输入数据太大,程序会死掉,之前一直以为是数组越界之类的错误,没想到是本地栈空间开太小了,所以程序运行较大数据时,我们可以手动开栈,就可以了。
具体操作是将菜单栏的工具打开,再打开编译选项,在编译器中输入-Wl,--stack=10000000
(这个数字是栈空间的大小)。再勾选编译时加入以下命令,再点确定就行了。