一些(很危险的)小错误

总结一些小错误

  • 某个变量名有大写的和小写的,然后用混了
  • 清数组用memset然后tle了?(数组开太大了,然后反复清
  • 四舍五入的地方没有四舍五入
  • 没看时间限制(以为为20分实际为50分的暴力,因为自己一句if (n<=…) 只有20分

    联赛后更

    然后就fst了

1.没有判边界(同下)

2.变量名打错了(写之前还记得不要打错了结果还是打错了)。

真的很作死

要输出sum然后输出了ans,不知道为什么错了。

很做死但是并不是很好找的错误

1.用数组下标来打标记,然而数组在不断进行排序.
2.数据生成器判掉了某种情况,然后刚好是那种情况会挂

很久以前的

  • 搜索中一些非标记用的变量不要用全局变量
  • 数组大小正确估计,稍微开大10?不能开太大,小心TLE。
  • 等于号是==,经常写成=。
  • 然后我又成功的把=写成了==;
  • 尽量避免程序中出现小数
  • 入队信息不全(一些东西没标记之类的)
  • 求和没有求全(dfs时最后一个数没算进去)
  • 行列混淆,数组开小了。
  • 赋初值的时候赋少了。数组清空清少了。
  • if写完条件之后打分号了
  • for (i=1;1<=n;i++) 把i打成1了,for后面直接接分号了
  • 特殊情况没处理,0好坑啊。(然后就爆炸了)
  • max,min赋初值赋成一个特殊的值,比较的时候判断一下就好。
  • i打成j,b打成a,for后面加了分号。
  • 本来要打个1~31的表,然后21后面直接29,然后找了好久的错.
  • 打左偏树的时候忘记更新右子树了/没有更改父亲(其实用并查集好搞些

    最近经常犯的错误

  • low[x]==dfn[x]打成low[x]==x
  • 用换行隔开的输出没隔开
  • 用空格隔开的输出用换行
  • if (n<=1000) {} else printf(“”,);自己作死本来是要else后面跟另一段程序的,然后发现东西太多没搞,然后else没删掉
  • 多种情况的输出,有的没隔开,有的输出之后没跳出,有的直接return 0;
  • 预处理预处理少了,要预处理到100w的只预处理到了10w
  • spfa的标记出队打错了,应该是 u=q.front();q.pop();vis[u]=0; 而不是 vis[S]=0;u=q.front();q.pop();
  • 排序的cmp函数不写return(然后RE….)
  • 四舍五入的地方没有四舍五入

考试的时候犯的错误

  • 某个变量名有大写的和小写的,然后用混了
  • 清数组用memset然后tle了?(数组开太大了,然后反复清
  • 一种情况还要加个if (n<=…)去得部分分,而不是直接跑暴力
  • 没看时间限制(以为为20分实际为50分的暴力,因为自己一句if (n<=…) 只有20分
  • 标记用的东西没有清空 (多测的时候)
  • 数组开大了,写了个什么10e6*6(所以下次要检查数组开得是否正常)
  • 数组开小了,写个骗分的算法然后因为数组开小然后少拿了很多分
  • (1-day1)写了假的剪枝
  • (1-day2)把a数组的某些元素提到b数组了进行dp,然后dp转移的时候还是写的a数组
  • (10-23)在s[0]个数中选(k-j)个,没有考虑到k-j>s[0]的情况
  • (10-25)k-1之后没有判是不是==0了
  • (10-26)某个地方忘记开long long了.

    置底

    //不会怎么犯了
  • 300*300=9000(逃)数组开小了;
  • long long读入和输出用的%d。而没有用%lld/%I64d
  • 看错题了。经常把小于等于看成等于。于是怀疑样例错了。
  • 循环写成for (j=1;j<=s[i];i++) 没有运行时错误。
  • 用max未加头文件algorithm。//#include多好
  • 输出的时候加了取地址符。
  • 在某种情况下,广搜第一次搜到的不是最优解
  • 数组写成a[i,j]dev-cpp竟然不会报错

一些需要注意的地方

1.用临接矩阵注意重边
2.初值不要赋太大或太小(太大->乘暴 (太小->药丸
3.一定要冷静
4.思路写下来