逃出自己常见的代码误区
lovewangtaotao
这个作者很懒,什么都没留下…
展开
-
针对搜索的一个常见错误
说来惭愧,ACM一直都单挑能力不行,发现自己的代码能力很差,经常自己写代码不走心,所以容易出现很多的低级错误。这里作为这个栏目的第一篇,我觉得有必要记录自己的常见错误的地方,以后注意力放上面就不容易出问题。今天写了一个搜索题目,看起来比较难,其实很简单,就是普通的最短路添加了一个分值。。对于这个题目,只要在松弛的同时保持最大的score就可以,也是很常见的,我很容易出错的多重if判断。很容易少原创 2017-01-23 15:38:12 · 340 阅读 · 0 评论 -
计算几何类型,圆与三角形的距离 51Nod1298
1.首先,发现了一个错误点,那就是,经常容易忘了平方,比如说这个就是忘了平方,代码中会指出。2.相信自己已经证明过的底层代码库,比如这里的那些abs,CHAJI之类的函数。3.记得分解问题,分解问题是一个解决问题的方法,这正是我所追求的。4.编写代码要分解问题,自顶向下,这样不容易出错,每一步都要仔细,距离一发AC不是梦。5.点积的表示是投影和夹角(x1*x2+y1*y2) , 二原创 2017-01-24 23:59:03 · 343 阅读 · 0 评论 -
迭代公式代码解决的常见问题
对于一个迭代问题,首先可以考虑的是是不是可以打表。打表的实质就是针对输入数据的组合数很小的情况(或者是中间某个数值)下,解决多个询问的方法。主要是空间换时间的思想。一般这个问题一个是可以在常数项内解决问题,然后询问远远大于(不太可能,但是也是有概率的) 。但是常常的是一个迭代式,同时也可以暴力求解,这样的话,暴力中的n*T肯定超时,但是迭代的话可以在0(N)中求出所有的可能输入的结果,这样原创 2017-01-28 21:31:55 · 711 阅读 · 0 评论 -
对于特殊的边界值特殊考虑的问题
软件工程,其实就是也提到了,那就是边界分析一发。边界的处理是常见的错误,还有if语句也是常见的错误。对于for循环,起始条件和终止条件是最重要的。一定要考虑是从0还是1开始,终止条件是原创 2017-01-28 22:05:27 · 632 阅读 · 0 评论 -
局部变量和全局变量的保证未修改性
对于一个全局变量,如果你要引入,一定要回头去看看去确保这个全局变量没有修改。也就是当你引用一个全局变量,一定要确保他就是你的想要的数值,这个很难保证,但是可以查看所有的比如n,那就查找n = ... 的表达式,那个这一些表达式就要格外注意。特别是额外引入的(写到一半加入的全局变量的引用,更加是容易出错。一定要回头看一下。还有一个解决方法,就是不要使用同名的,使用tn来代替n,这样,但是要注意在合适原创 2017-01-28 23:41:50 · 362 阅读 · 0 评论 -
51NOD1489搜索的错误
今天写了一个暴力搜索,主要的要点是----找到一个最优的搜索的方法,一般是考虑顺序,但是按照啥作为一个步伐决定了算法的效率。这个题目排除了很多不对的姿势,使用的是特殊的极限数据,这个方法可以用来做排除法,因为他不可以用于验证,唯一的作用就是作为排除的思想和启发的思想。然后代码方面的问题谈一谈,以前就是搜索不怎么样,现在发现,很多的手误(现在很容易发现了,因为更加的仔细了,主要还是不要怕思考原创 2017-02-02 23:46:42 · 248 阅读 · 0 评论 -
一些好的文章和网站,留着以后使用
作为一个C++爱好者,怎么可以不知道C++的特性呢。所以这个网站是中文版的C++reference,例如新特性都会出现在这个地方。例如std::move() ;http://zh.cppreference.com/w/cpp/language/value_category原创 2017-08-02 10:05:59 · 212 阅读 · 0 评论