清华大学公选课数据结构A作业范围查询:http://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=936
花了接近一周时间,终于搞定了这题作业。作业并不难,但是无论我如何改进代码总是超时,导致我一度放弃。今天终于做出来了,对C++的输入输出有了全新的认识。
此前用自己的方法写下了C++代码,但无奈总是超时,于是在网上搜到了这篇博客:http://blog.sina.com.cn/s/blog_59fa585c0102v2el.html
我几乎照着代码改了一遍,却依然超时,百思不得其解。我甚至用自己的代码和这份代码做过profile分析,关键步骤耗时相差无几。最终当我偶然将cout换成printf后就通过了,由此也可以看出不仅是cin慢,cout也很慢。
用vs做的profile:
输入方面尽管换成了scanf,但依然占用了70+%的时间。
而在清华的OJ上的测试应该含有很多的cout,但题目中并未指出这一点,下图是改cout之前和之后的比较,竟有超过50%的提升。
时间: 2024-10-29 19:07:17