注意事项和一些书写规范
-2. 部分分:什么时候该写什么样的
分三种:
- 对正解有帮助的部分分,但分值不一定高
- 分值很高,很难写,但独立性较强,不一定对正解有帮助的分
- 显然的分,分值低,两三行或者稍多,对后续有一些帮助,基本上想明白了就不会假的分
- 作为整个题的一部分的部分分(或者正解impossible,这时认为这个题的完整解法不存在)。整个题就是部分分的并集。
第一种可以在任何时候去写,第二种后期(最后2.h-2h)写,尽早写,第三种最后1.5h~1h收尾。
-1. 最后2h-1.5h开始拼暴力,后2h不要想任何题的正解,会了一档不显然分/有助于正解的分就先写着,写完说不定就有思路了 不用把每个细节都想得非常清楚再写
0.考场上,不要想任何东西的证明,直接启动猜猜模式,默认所有题都是元神题 先写暴力 再改正解
1.freopen!!!
2.建子文件夹,子文件夹和里面的程序命名、freopen的内容都是题目英文缩写,不是a b c
3.测程序静态空间大小
bool MBEGIN;
...
bool MEND;
cerr<<abs(&MBEGIN-&MED)/1048576.0<<endl;
4.编译选项
打开-std=c++14 -O2 打开-Wall
如果是linux环境:
shell脚本要会写,
5.用来测大洋里的脚本
测单个大洋里:
c.sh
ulimit ...
g++ problemname.cpp -o t -编译选项
./t <problem$1.in >$1.out
diff problem$1.ans $1.out -w
测多个大洋里(主要用于最后检查):
C.sh
ulimit ...
g++ ...
for((i=1;i<=5;i++))
do
echo test$i
./program <problemname$i.in >$i.out
diff problemname$i.ans $i.out -w
done
简单写法,会被多次编译:
for((i=1;i<=8;i++))
do
echo test#$i
./c.sh $i
done
6.对拍脚本
(当然也可以写成c++程序)
shell里面返回值0表示没有异常,非0表示出现异常状况。
d.sh
g++ track.cpp -o dt
g++ rightbf.cpp -o dbf
g++ gen.cpp -o gen
for((T=1;;T++))
do
echo test#$T
./gen >1.in
./dt <1.in >1.prog
./dbf <1.in >1.bf
if ! diff 1.bf 1.prog -w;
then
echo wrong answer
exit 1
fi
done
exit 0
7.vscode常用快捷键:
ctrl+d(ctrl+d ctrl+d ...)
ctrl+shift+c/v ctrl+c
ctrl+/ ctrl+[ ctrl+]
alt+click
shift+end
code recall.cpp
mkdir recall code recall
(select code block)+alt + 上箭头/下箭头
shift+alt + 上箭头/下箭头/mouse click
8.子文件夹结构
假设题目名称为recall
---recall.cpp
---gen.cpp
---bf.cpp
---c.sh
---C.sh
---d.sh
---t (编译recall.cpp得到的可执行文件命名为t)
---recall1.in
---recall1.ans
---recall2.in
---recall2.ans
---...(大洋里)
---1.out
---2.out
---...
---dt (正在对拍中的程序可执行文件)
---dbf(正在对拍中的程序可执行文件)
9.debug宏
考试的时候一般不写debs
#ifdef LOCAL
#define deb(var) cerr<<#var<<'='<<(var)<<"; "
#define debl(var) cerr<<#var<<'='<<(var)<<";\n"
#define debs(...) cerr << "(" << #__VA_ARGS__ << ")=(", deb_out(__VA_ARGS__)
void deb_out() { cerr<<");\n"; }
template <typename H>void deb_out(H h) { cerr << h << ");\n"; }
template <typename H, typename...T>void deb_out(H h, T... t){ cerr << h << ","; deb_out(t...); }
#else
#define deb(var)
#define debl(var)
#define debs(...)
#endif
10.ulimit
ulimit -s unlimited
11.拼包
int C;
int N,M,A[100010];
vec<int> g[100010];
...
(等一些在外部共用的东西)
namespace SubA{
bool test(){
}
void solve(){
}
}

浙公网安备 33010602011771号