刚刚在调 P7915,给自己蠢哭了┭┮﹏┭┮
int t,n,arr[5000009],ton[5000009],nxt[5000009],ll,lr,rl,rr;
char ans[5000009],tot=1;
没错就是这么炸裂
这段代码里,tot 定义为了 char,导致其值上下限为 ±128。但在本伏笔未消除的情况下,代码居然通过了大样例,难以想象考场上造成的后果。
警钟:当使用多个数据类型时,检查数据类型是否定义正确
同时,rr 变量紧接在 ans 之前,因此在调试时,tot 超上限溢出转负,ans 越界,因此操作 ans 时直接修改了 rr,导致其值出现了及其异常的变化。
警钟:警惕由于数组越界导致的其他数据篡改,在调试时要想到这一点
CSP RP++