在拙文 《高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”》中,我对ACMer们的一些代码“惯例”发表了我的看法, librazy网友在评论中给出了他的一些见解,我予以了相应的回复。

  我个人认为这种讨论是极其有益的,双方取得了一些基本共识,对分歧之处,也都说明了自己的理由,以待读者自行判断。无疑,这是一次高水准的讨论。

  感觉这些讨论散见于“评论”中有些可惜,故此稍作整理,以利于网友阅读。需要说明的是,整理过程中我做了一些润色和补充。如果librazy网友感到有必要,欢迎也进行必要的润色和补充。

基本共识

  我和librazy网友一致认为:

  因为竞赛是为了“赢”对手,但代码绝对不是像卫生纸那样一次性使用的。

  此外我和librazy网友都一致认为宏名应该大写,不应该无故违背C语言长期形成的这种“公序良俗”。

  以下则是我和librazy网友对某些问题的“各自表述”:

关于ACM竞赛

librazy:

garbageMan:

关于在源文件头部写无用的#include预处理命令

librazy:

garbageMan:

关于main()定义是否应该写不需要的形参

librazy网友:

garbageMan:

关于使用什么样的数据结构

librazy:

garbageMan:

对此librazy网友表示同意:

关于flag标识变量

librazy:

garbageMan:

关于数组清零及外部变量(“全局变量”)

librazy:

garbageMan:

  “没记错的话《骗分导论》还是哪篇集训队、省队论文有分析过数组操作的时间复杂度(貌似结论是都差不多……反正怎么做都比读入快并且不影响时间复杂度。数组反倒是放全局比较好……要不然还没有MLE就爆栈了。”

关于数组定义

librazy网友:

garbageMan:

关于“一main到底”的问题

librazy:

garbageMan:

关于算法竞赛与编程的区别

librazy:

garbageMan:

“从”还是"不从"?

  这条看法来自BMan、网友:

garbageMan:

05-11 13:34