简直就是一个暴力动归,太无语了……比noip2010tortoise还暴力。
以前我一直以为,for最多的一个程序是以前我写过的一个tarjan缩点+dp的题,但是,这个题改变了我对for的看法,太多了……
话说这个题,我一开始暴力实现用了10.xx秒,然后看了前面的编译,用了-O2开关,速度达到了7.74s,然后优化读入,没开编译开关,总速度达到了5.xx秒,最后两个一起上,总速度3.24s,秒掉一切Pascal!
开始他们还说要出一个题,用巨型读入让C/C++TLE掉,如今看起来,有点困难……
要怪也只能怪scanf/cin,cin在编译时确定类型,运行时速度自然快,可是却被嵌入stl中,实现地极其低效,十分无语,至于scanf,要在运行时确定类型。这样有好处,就是对于不确定性输入,当然,坏处就是拖累了速度。有人说,ios::sync_with_stdio(0)可以让cin/cout速度快一点,可事实上可没多少优化,还是没有scanf快,我觉得stl太注重特性,各种特性都有,反而拖累了速度。其实,我觉得C++对我而言比较有吸引力的就是引用传参……很无语吧,那些用pascal/C++的同志,C里面没用变量传参,一切只能用指针来代替,很无语……
算了,以后还是多注意各个输入吧……
附:APIO2009OIL的AC代码,看还是好看: