虽然这是常识,但是毕竟因为我现在Java更熟悉一些,也在用Java做Codeforces。加上这已经被Java卡了两次IO了。所以水一发。(老司机退散,就是典型的破事水系列)
从一道水题开始
这个题说白了就是排个序,然后依次输出查询,然后输入读入查询的结果。最坏$n^2$次查询,$n$的规模也就500,也就是25W的输入输出。算法复杂度$O(n^2\cdot{log(n)})$,就算常数比较大,按100W次运算(目前CF1秒1000W都能跑)。时间限制3.5秒。
我们来看看各语言的提交情况:
排除一些时间开销非常小的提交(比如C++中32ms的,Java中233ms的),因为这些提交不知道是利用的SPJ的bug还是发现了什么特殊构造方法,这些提交普遍没有做任何查询,硬是靠入度直接给出输出。回头有时间再研究,这里我们先排除这些提交。
Java和Python
太惨了。几乎全是3s。其实这个不是最惨的。点开一个Java的提交我们可以看到下面这些东西:
就Java自带的Scanner基本上没人用的,都是祖宗传下来的外挂,不然基本上没法玩。
我们再来看看这道题TLE的玩家列表:
NodeJS和JS
不是说这个星球上没有人用Node打CF。但是遇到这种交互式的题目真的没办法。
我试着找了下,怎么在CF上用Node玩呢?找到了下面这个玩意:
但是,看了半天,到底是读完了输入,然后输出。虽然讲道理,onData应该是可以应对交互输入的。但是实在是没精力弄了。
但总的来说,感觉Node比Java还难玩。
C/C++
不说了,看一眼TLE的玩家列表吧:
对。就只有6个提交4个菜鸡居然T了。而且T在样例的2组数据,一看就是手滑忘了flush的。
不是说Java不好,Node不行。而是不要用镰刀去切菜,切菜请用祖传永灵刀。
最后,我就只是个找思路都要找半天的老菜鸡,实在不想把注意力分散刀语言问题上。所以人生苦短,我选C++。