把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

[总结]错误总结

什么**错误啊都是

不够『数据删除』的错误我都不会犯好吧

现在算是半个机房火草和ty的错误集合了。

宣传:tytyty 个人向错误合集

  1. 多个函数传参数时注意传参顺序。

  2. 警惕伪装成 \(while\)\(for\) 循环。

    例:

    int l=...,r;
    for (r=1;r<=l;r++);
    
  3. 数据结构题(如线段树)数组要至少开到 \(n\)\(4\) 倍。

    \(update\) \(2022.11.3\) YZJ

  4. \(NTT\) 模数不能是 \(1e9+7\) ,推荐 \(998244353\) (原根为 \(3\)\(114514\) ),选择模数时注意是否满足性质。

  5. 需要取模的题在进行加法和乘法时都要取模。

    \(update\) \(2022.8.26\) @tytyty 写代码有一句没取模导致 Caii 延迟下班 \(20\) \(min\) ,警钟长鸣。

  6. 提交时记得删除调试语句。

  7. 变量值在运算中可能改变(废话),所以如果在同一循环/函数中需要多次调用变量值,务必新定义其他变量来储存(运算)。

  8. 在进行多重循环时警惕以下情况:(都犯过两次了,wtcl)

    	For i:1->N;++i
    		For j:1->N;++i
    

    \(update\) \(2022.8.8\) ++;

  9. 取模时注意符号(是 \(\%p\) 不是 \(*p\) ),离大谱。

  10. "\(!\)"(“非”运算)和三目运算符优先级都非常高,在有多个运算同时进行时务必加上括号。

  11. 其实是可以相信 \(double\) (浮点)类型的。

  12. 本地不编译就提交,必寄。

  13. 四个小时的考试花三个小时在签到题上,必寄。

  14. 变量、数组和函数名不能与库中已有函数名冲突,否则必寄。

  15. 加号减号不要弄反,服了。

  16. 在你谷读入单个 \(char\) 类型的变量时不要用 \(getchar()\) 直接 \(cin\) ,用 \(getchar\) 会出现神奇的错误(如 \(100\) \(pts\) \(\to\) \(0\) \(pts\))。

  17. 注意题目中指定的模数(@世界上第一可爱的OccDreamer在写题时把题目中指定的 \(998244353\) 写成了(默认成了) \(10000007\))。

    \(update\) \(2022.7.14\) 又写错了。

    \(update\) \(2022.11.5\) 为什么有出题人用 \(993244853\) 做模数?!!!

  18. 变量、数组名尽量定义地清楚易懂,不然可能过了 \(5\) \(mins\) 后就不知道啥是啥了/kk

  19. \(memset\) 时要注意是:memset(a,0,sizeof(a))
    而不是:memset(a,0,sizeof(0));

    \(update\) \(2022.10.14\) memset(deep,-1,sizeof -1);

  20. 数组大小要合适(@世界上最最最最最最可爱的tytyty在改题时数组开小了改了 \(1h\) )。

    \(update\) \(2022.8.1\) ty又写小了。

    \(update\) \(2022.8.2\) ty&我又写小了。

    \(update\) \(2022.8.2\) ty&我又写小了。

    \(update\) \(2022.8.3\) 我又写小了。

    \(update\) \(2022.8.24\) 我写小了改了 \(2\) \(days\)

    \(update\) \(2022.9.1\)P4103 [HEOI2014] 大工程开小了 \(10\) 倍,TLE(? 了三发提交。

    \(update\) \(2022.9.3\) ty开小了调了\(4h\)

    \(update\) \(2022.9.17\) ty开小痛失 \(50\) \(pts\)

    \(update\) \(2022.9.27\) 用了 \(8e5\) 的数组结果只开了 \(4e5\) ,警钟敲烂。

    \(update\) \(2022.10.7\) \(P1018\) 开小十倍喜提 \(90\) \(pts\)

    \(update\) \(2022.11.9\) 考试开小十倍怒挂 \(80\) \(pts\)

  21. @0ccDreamer 小姐写并查集按秩合并没判断两个点是否在同一连通块。
    \(update\) \(20220908\) @OccDreamer 同上。

  22. &&写成&

  23. 注意链式前向星是否重复连边(@世界上最最最最最最可爱的tytyty重复连边改了 \(0.5h\) )。

  24. @世界上最最最最最最可爱的tytyty\(char\) 类型函数没写返回值调了一晚上+一早上。

  25. 多个函数用了同一个变量没有置零,调了一晚上+一早上。

  26. 这道题时:dp[x][S]==dp[x][subs]+dp[x][subs]-a[x]

    (正解:dp[x][S]==dp[x][subs]+dp[x][S^subs]-a[x]

  27. 一张图说明了所有:图片寄了不想修复就这样吧。

  28. 不开 \(long\) \(long\) 见祖宗。

  29. 极大值最好是 \(long\) \(long\)\(1e18\) ,或者 \(1145141919810\) ,别用 \(1145141919\)

  30. @世界上最最最最最最可爱的tytyty

    queue<node> q1,q2;
    struct node {...};
    
  31. @世界上最最最最最最可爱的tytyty手写队列:

    while(!(h1<=t1)||!(h2<=t2))
    
    
    ...
    
    
    h1=...,t1=0,h2=...,h2=...
    

    然后:

    
    	h1=1,t1=0,h2=1,t2=0;
        
        	  ...
        
            q1[t1++]=...,q2[t2++]=...
    
  32. 不要把输入写到文件后面!!!

  33. @世界上最最最最最最可爱的tytyty

    for (int i=head[x];i;e[x].nxt)

    正解:

    for (int i=head[x];i;i=e[i].nxt)

  34. 为什么我手写快读比 \(scanf\) 还慢???

  35. 要区分费用流和最小割啊。

  36. 写网络流的时候链式前向星要从 \(2\) 开始编号( \(tot\) 初始化为 \(1\)

  37. 写费用流时最好将 \(head\) 初始化为 \(-1\) ,同时在 \(spfa\) 时注意边界条件!

例:

for (int i=head[x];i!=-1;i=net[i])

而不是:

for (int i=head[x];i;i=net[i])
  1. 数组开小RE,数组开小跑不出函数。

  2. 写最小割: if (deep[v]=-1&&worth[i]),服气,不要把相等写成赋值!!!(调了小半个上午)

  3. 写数学时注意式子的符号 @tytyty 。

  4. 写树剖:if (!deep[y]) {deep[x]=deep[x]+1;...}

    P4103 [HEOI2014] 大工程\(rebuild\) 函数时没把选择的点入栈。

  5. 用 long long 统计答案,累加时没有乘 1LL

    结果:

  6. 突然想起之前 @tytyty 多组数据清空数组的时候把原图全部清了。

  7. 多测不清空必寄!!!!!!

  8. 不写快读,寄!!!!!!!

  9. 怎么会有人都高一了还不开文件啊!!!!!!!!!!!!!!

  10. 循环查找答案找到不break de了约 \(30min\)

  11. 当你发现算法没问题数组开得对语句也没有上述的所有错误的时候,为什么你不能想一下是不是你的输入函数写错了呢?因为这个调了一个下午和小半个晚一。

    \(update\) \(2022.10.11\) 调了半个晚二。

  12. 注意输入格式。

  13. 考试时 \(n\le 10^{1000}\) ,@Mr_Avalan 写压位高精压五位,怒开数组 int a[105],b[105]

  14. @Mr_Avalan : 桶要开到值域大小。

  15. 尽量不要用 exit(0);

  16. @YangZJ : freopen("xxx,in","r",stdin);

  17. @tytyty :

	int read() {
	int x=0,f=1;char ch=getchar();
	for(;ch<'0'||ch>'9';ch=getchar()) if(ch=='-') **f=-1;**
	for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<1)+(x<<3)+ch-'0';
	return **x**;
	}
  1. @tytyty : 高斯消元不用临时变量存主元导致其变成一堆东西乘/除 1 。

  2. @tytyty : 警惕写线段树在赋值标记上做加法。

  3. 并查集: for (int i=1;i<=n;++i) f[i]=1;

  4. CSP-S 没开文件见祖宗!!!!!!

  5. @tytyty : 网络流,当前弧优化,改到 bfs 里去了。

  6. @tytyty : 快读又写错了。

  7. 快读错了。

  8. 把多个函数名与函数本身搞混了。

  9. 网络流板子要固定。

  10. 怎么会有人写快读 return 0; 啊。

  11. 注意运算顺序,在有位运算的时候务必加上括号。

  12. 注意题目中是要建双向边还是单向边。

  13. 虚空debug:写线性带悔贪心挎的环形带悔贪心的代码结果忘记把环变成线了。

  14. 写二分时不要 #define mid ((l+r)>>1)

  15. 写树链剖分时注意谁是谁儿子谁是谁祖先。

posted @ 2023-01-15 16:16  Fire_Weed_yue  阅读(35)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end