程序的读入、输出时间也计入运行时间,而这些操作无法避免。C++ 风格的 cincout 自然情况下比 C 风格的 scanfprintf 慢很多,一部分原因是 C++ 的流式输入输出为了兼容 C 风格的 scanfprintf 牺牲的效率。我们可以通过「关闭同步」操作,把 cincout 加速到接近 scanfprintf 的水平。

    只需在主函数加入两句代码:

    1. int main() {
    2. ios::sync_with_stdio(false);
    3. cin.tie(0);
    4. return 0;
    5. }

    输入输出规模较大时,强烈建议使用

    在 ACM 比赛中,存在一类「输入输出外挂」,它们是通过合法代码(例如 getchar())等方案,追求读入和输出效率极致的模板。这实际上属于「卡常数」(优化代码时间复杂度的常数项)技术,属于一类竞赛的专门技术。读者可凭兴趣了解。

    扩展阅读:探究算法竞赛中的输入输出效率