错误合集
遇到交互题要求刷新缓冲区要用 cout<<endl;,endl 有刷新缓冲区的作用。具体详见Lost Tree。
要注意临界初值。
输出单个字符用 scanf 的话 -> scanf("%c",s)(大概连这个都不知道的只有我了吧。
没开 long long 挂 50 pts,警钟撅烂。
要考虑边界值,考虑最后的情况,最后一个位置是否应该有值?最大值 or 最小值?要考虑最后的m,结尾要加最大值
分清变量/fad。(这什么啥b错误。
一个自己想出来的小 trick(?:清空 vis 数组时,若有多次操作,可以对每次操作进行编号,然后通过判断当前 vis 与当前操作编号是否相等来判断是否走过了。
取最大值时,如果本来的值有负数的情况,注意存答案的变量要赋初值为比出现的值小的值。比如Golden Sword
注意状压 dp 开数组的时候的大小。吃奶酪
特判特殊性质后面加 return 0;
读题!读错题意在模拟赛中挂掉 30+ pts。(upd:退役之后依旧读错。2026.1.27 因为读错题被卡3day)
为什么这几天模拟赛天天挂分啊。
牛魔的,mn、mx 要记得赋初值。最小值没赋初值狂调一上午:加边。
一定要先把题目读完!
静下心来去分析,冷静!
牛魔的,加 freopen,以及别写错。
权值线段树的范围要注意,可能是从 0 开始的。奇怪的操作
斜率优化,线段 \([i,j]\) 的斜率是 \(\frac{y_j-y_i}{x_j-x_i}\)。
斜率优化注意斜率返回值为 double,还有参与计算的也为 double:
il double Y(int x) {return f[x];}
il double X(int x) {return dep[x];}
il double slope(int x,int y) {return (Y(y)-Y(x))/(X(y)-X(x));}
il int calc(int x) {//找斜率为x的直线与凸包的切线的凸点
int l=1,r=sc;
while(l<r) {
int mid=(l+r)>>1;
if(slope(sta[mid],sta[mid+1])<x) l=mid+1;//
else r=mid;
}
return sta[l];
}
注意好变量名,如果用与题目给的变量不同的变量,要记清,最好是写下来提醒自己。
多测清空、初始化。调了一下午The Walkway
对于图的题,要考虑重边和自环,仔细读题。
别 int 的输出写成 scanf("%lld\n",a)/qd/qd。
2024.10 csp考前
并查集合并应使整体的根节点更新连接。
inline void merge(int x,int y) {
int xx=find(x),yy=find(y);
if(xx==yy) return ;
fa[xx]=yy;//
return ;
}
正难则反!!!
有个啥b忘了更新最大值了/cf/cf/cf。
2026.1.27
考虑特殊情况!!!!!(especially 0!!!!!!!

浙公网安备 33010602011771号