注意事项和一些书写规范

-2. 部分分:什么时候该写什么样的

分三种:

  1. 对正解有帮助的部分分,但分值不一定高
  2. 分值很高,很难写,但独立性较强,不一定对正解有帮助的分
  3. 显然的分,分值低,两三行或者稍多,对后续有一些帮助,基本上想明白了就不会假的分
  4. 作为整个题的一部分的部分分(或者正解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(){
 }
}
posted @ 2026-03-01 20:14  Network_Error  阅读(7)  评论(0)    收藏  举报