RE紧急抢救指南
pxn1234
·
·
休闲·娱乐
这篇文章会不定期更新。
欢迎投稿补充。
# 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`,你本地不会错,但交上去字符串会读到莫名其妙的东西(洛谷貌似不会出这个问题)