RE紧急抢救指南

· · 休闲·娱乐

这篇文章会不定期更新。
欢迎投稿补充。

# RE/WA大数据 1. 大数据数组开小( $10^6$看成了$10^5$? )有时会导致 WA。 例题:[P3919](https://www.luogu.com.cn/problem/P3919) 2. 线段树没开4倍空间。 3. dfs爆栈(建议剪枝或换做法)。 例题:[P1763](https://www.luogu.com.cn/problem/P1763) [P7115](https://www.luogu.com.cn/problem/P7115) 4. 每个数组使用不同的尾指针,不要混用(`tot`)。 5. 交错题目了。 6. 扫描线实现不好需要16倍空间。 7. 离散化结构体时要开多一点。 # RE/WA全部 1. 函数忘记`return`了。 2. 除以了0。 3. 左移写成右移(线段树?)。 4. `stack/queue/deque/priority_queue`弹出没判空(单调栈/spfa slf优化)。 5. 顶到数组上界(倍增?)。 6. 未使用文件输入输出`freopen`。 7. `scanf`没有取址符/`scanf/printf`格式符混用(`define int long long`?)。 8. 线段树belike: ```cpp int mid=l+r>>1; if(ql<=mid) change(ls,l,mid,ql,qr,k); if(mid+1<=qr) change(ls,mid+1,r,ql,qr,k); ``` `rs`写成`ls`? 9. be like: ```cpp vector<int>vec[N]; void merge(int x,int y){ for(int i:vec[y]) vec[i].push_back(i);//vec[i]??? } ``` 样例数据范围小,不会RE,但交上去全RE。 10. be like: ```cpp memset(a1+1,a2+n+1);//或者 fill(a1+1,a2+n+1,0); ``` 本地莫名AC,交上去全RE。 11. 输入格式: ``` 一个数 一个字符串 ``` 你的输入: ```cpp cin>>x; getchar(); for(int i=1;i<=x;i++) str[i]=getchar(); ``` 实际上Linux系统上换行符为`\n\r`,Windows下为`\n`,你本地不会错,但交上去字符串会读到莫名其妙的东西(洛谷貌似不会出这个问题)