时间复杂度


10^5级别?基本上是O(nlogn);10^7?那必须O(n)了;10^3基本上不就是个O(n^2);蹦跶出来个诸如20以内的条件基本上就暴力了;如果俩参数范围一个才十几二十另一个成千上万基本上是个状态压缩DP类似的玩意了……诸如此类。


首先,肯定需要清楚自己写出的算法复杂度究竟是多少,不算常数通常1千万左右稳稳能在1秒内跑出。
但有时候还是需要一些经验,比如最大流dinic的理论复杂度很高,但点数上万的一些题目却可以快速跑出结果。

再比如深搜加剪枝的题目,有时候就涉及到玄学了,可能加了个剪枝莫名其妙就过了,当然有时候跟数据强弱和出题人造数据的姿势也有关系…前一阵我办比赛的时候某神牛出的神题就因为数据水被大家爆搜剪枝艹翻了。……

总之分析和经验,两者都不可少。



当然命运的决定权还是很重要的。


作者:Barty
链接:https://www.zhihu.com/question/36234571/answer/66596723
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(时间复杂度)