记录一个常犯的错误:直接访问数据结构内部的数组

Posted Chitoge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一个常犯的错误:直接访问数据结构内部的数组相关的知识,希望对你有一定的参考价值。

在xcpc竞赛中,我们通常不会封装用到的数据结构,在这种情况下常常出现直接访问到数据结构内部数组的情况,这种情况因为自己乍一看并不影响算法因此debug时很难找出来

例如树状数组中,初始化应当是从1一直add到n,而非遍历数组初始化。不过这种错误出现的不多,常见的是在循环之前对某个位置特殊处理时。例如需要讲i点修改为x时,直接修改了BIT[i]=x而非使用add(i,quere(i)-x)

再比如并查集,当我们初始就给定了部分节点的父节点(例如这题:牛牛的赢趴)时,我们应当先按照一般情况初始化并查集的数组DSU[i]=i后再将给定了父节点的点merge(i,x)。而非直接修改dsu数组为DSU[i]=x

还是太菜了,bb半天感觉不如封装成类^^

以上是关于记录一个常犯的错误:直接访问数据结构内部的数组的主要内容,如果未能解决你的问题,请参考以下文章

总结软件开发过程中最常犯的10个问题

总结软件开发过程中最常犯的10个问题

Java程序员最常犯的错误盘点之Top 10

Java程序员常犯的10个错误

蓝桥杯常犯的错误以及经验总结(考前冲刺必看)

新手常犯的错误