PKU 1002

来源:互联网 发布:广州非洲人那么多知乎 编辑:程序博客网 时间:2024/03/28 19:04

     一个破题,弄了那么长时间,XZ都笑话我了,这是燕归来在PKU上的第一个题了。
 重新回来感觉手生得很,方法还不算最快的,因为懒,没有用基数,因为XZ说quicksort
 就可以过的,有时间再慢慢优化它吧。
     罗嗦了那么多该进入主题了,思路没什么了,比较直接的题目,就是计数之前先排序
 就好了。那么接下来,方法:
     1、当然是一次全部读入,顺便把无用字符滤掉,同时利用mappinTable把字母转换为数字。
     2、把这些“干净的”字符串转成整数。
     3、Quick sort
     4、计数。
     5、转回字符串,调整输出格式,输出。
     挺简单的哈。
     编完之后提交,虽然说WA很正常,在意料之中,但我不再像以前那样死磕,宁可想破脑袋
 也绝不向任何地方任何人求助,那样太浪费时间,反正也不是什么选手了,用点流氓办法也无
 所谓了。于是立即根据题目下方的source找到了测试数据。这一测,觉得自己简直太英明了,
 因为读题的疏忽和对测试数据的不了解,根本没注意会有“No duplicates.”的情况。如果只有
 一个input file的话,根据ACM如此大量测试数据的习惯,肯定不会“No duplicates.”,所以
 这种情况想都没想过。但实际情况是input file总共有16个之多,各自负责不同方面的测试。
 这种情况下当然就有“No duplicates.”的情况拉。这个错误要是指望我自己读题发现,基本上
 要1000000年以后了…………汗一个。
     修改之后再提交,TLE,在有测试数据的情况下,这就是头号问题了,自己想想问题不应
 该出现在sort上,因为XZ用Quick sort也过了的。想想应该是输出的时候浮点运算过多所致。
 此后的很长一段时间之内,便在寻找合适的数据结构上了,发现自己对于C和C++的String已经
 完全糊涂了,string,char*,int,stringstream,atoi,itoa,一阵倒腾之后总结经验如下:
     1、stringstream虽然是个万金油,但其效率足以让我TLE,而且有了atoi,itoa这对好兄
     弟,这个万金油能派上用场的地方就比较少了。
  2、用/ 和 %来控制整数的输出是非常愚蠢的想法,那个浮点运算量啊……当初之所以这样用,
     哎,还是因为不知道itoa这个咚咚。
  翻看了C++ Primer以及其他手册之后,string和char*之间的关系又浮出水面,而且比原先
 还明晰很多,不错的说。
     下一个题目是ZJU 2800,因为答应了阿斗要帮他想想的,虽然拖的时间久了,但是食言是不
 可以的。也就是PKU 上的2475,方法倒是想好了,得实现下。

     ps:那么早了,PKU上面还有好多人交题,估计不能都跟我一样一时间发疯,睡不着起来弄
 这些。应该是勤奋的孩子们,bless一下。 

原创粉丝点击