直接使用 cin
/cout
进行输入输出时会比较慢,数据量较大时会比较耗时。因此在输入输出数据量特别大时,很多题目需要用更快的输入输出方式。
头文件加入 #include <cstdio>
,然后仅使用 scanf
、printf
进行输入输出。
在 main()
函数的开始加入两行代码。这两行代码可以关闭输入输出流同步,解除 cin
、cout
绑定。
...
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
...
}
然后仅使用cin
、cout
进行输入输出,且所有换行使用 '\n'
,不使用 endl
即可。
如果再搭配上文件输入输出,则 main()
函数的开始可以这样写:
...
int main(){
freopen("输入文件名", "r", stdin);
freopen("输出文件名", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
...
}
注意:此时千万不要手动进行 fclose()
操作,否则你的输出可能都不会出现在输出文件中!!!
如果非常想要加上 fclose()
,请务必保证最后有进行一次缓冲区的输出,更多内容可参照:【日报】浅谈C与C++风格的文件IO及其它
使用 getchar()
自行解析,俗称快读,时间效率最高。不展开说明,有兴趣可自行阅读:读入、输出优化。