事无巨细,有挂分技巧就写
如果有朋友愿意提供新的挂分小技巧,可以评论或者发Q联系我,感激不尽!
看好题目要求,别自作聪明!
数组开小
模数取错
该开 \(\text{long long}\) 的题没开 \(\text{long long}\)
\(\text{freopen}\)写错( \(\text{frepoen}\) 之类的)
\(\text{in}\) 和 \(\text{out}\) 文件写错,正确写法(根据题目而定):
freopen("a.in", "r", stdin);
freopen("a.out" ,"w", stdout);
莫名其妙在代码里多加了几个符号
炸空间,或者空间开小,有的题空间开小不一定是 \(\text{RE}\),还有可能是 \(\text{WA}\)
多测不清空,爆零两行泪
不要在结构体里开数组开的太大,否则即使没爆空间也会出现许多奇怪的错误
奇奇怪怪的手误,比如:\(f[y][i]\) 写成 \(f[y][y]\),\(s=read(),t=read()\) 写成 \(s = read(), s = read()\).
数据范围十分重要!\(2^{31}\) 比 \(\text{0x3f3f3f3f}\) 大!
在有返回值得函数中记得加 \(return\)
注意数组的下标会不会减出负数,如果有负数会 \(\text{RE}\)
矩阵记得初始化,我的写法如下:
struct matrix {
int a[A][A];
matrix() { memset(a, 0, sizeof(a)); }
void init() { for (int i = 1; i <= n; i++) a[i][i] = 1; }
};
一定不能吝啬空间,开 \(30\) 倍左右?
在主席树中,if (k <= tmp) query(t[x].l, t[y].l, t[lca].l, t[fa_lca].l, l, mid, k);
中的 k<=tmp
写成 k>=tmp
在 \(\text{build}\) 函数中,忘记加 \(now\),答案没错,但是程序运行十分缓慢
void build(int &now, int l, int r) {
t[now = ++tcnt].sum = 0;
//debug:t[now = ++tcnt].sum = 0写成t[++tcnt].sum = 0;
//忘记加now导致程序运行速度十分缓慢
if (l == r) return;
int mid = (l + r) >> 1;
build(t[now].l, l, mid), build(t[now].r, mid + 1, r);
}
原文:https://www.cnblogs.com/loceaner/p/13565270.html