输入输出加速

直接使用 cin/cout 进行输入输出时会比较慢,数据量较大时会比较耗时。因此在输入输出数据量特别大时,很多题目需要用更快的输入输出方式。

方法 1

头文件加入 #include <cstdio>,然后仅使用 scanfprintf 进行输入输出。

方法 2

main() 函数的开始加入两行代码。这两行代码可以关闭输入输出流同步,解除 cincout 绑定。

...
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    ...
}

然后仅使用cincout进行输入输出,且所有换行使用 '\n' ,不使用 endl 即可。

如果再搭配上文件输入输出,则 main() 函数的开始可以这样写:

...
int main(){
    freopen("输入文件名", "r", stdin);
    freopen("输出文件名", "w", stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    ...
}

注意:此时千万不要手动进行 fclose() 操作,否则你的输出可能都不会出现在输出文件中!!!

如果非常想要加上 fclose(),请务必保证最后有进行一次缓冲区的输出

方法 3

使用 getchar() 自行解析,俗称快读,时间效率最高。不展开说明,有兴趣可自行阅读

0 条评论

目前还没有评论...