今天刷题时碰到用cout输出时时间时printf的20多倍的情况,不知道时OJ的判题机制还是cout在效率上的问题?

仅作展示,我也不知道为啥,有大佬解答一下吗?

题目如下:

题目名称:血色先锋队

时间限制: 1.000 Sec  内存限制: 128 MB

题目描述

巫妖王的天灾军团终于卷土重来,血色十字军组织了一支先锋军前往诺森德大陆对抗天灾军团,以及一切沾有亡灵气息的生物。孤立于联盟和部落的血色先锋军很快就遭到了天灾军团的重重包围,现在他们将主力只好聚集了起来,以抵抗天灾军团的围剿。可怕的是,他们之中有人感染上了亡灵瘟疫,如果不设法阻止瘟疫的扩散,很快就会遭到灭顶之灾。大领主阿比迪斯已经开始调查瘟疫的源头。原来是血色先锋军的内部出现了叛徒,这个叛徒已经投靠了天灾军团,想要将整个血色先锋军全部转化为天灾军团!无需惊讶,你就是那个叛徒。在你的行踪败露之前,要尽快完成巫妖王交给你的任务。

军团是一个N行M列的矩阵,每个单元是一个血色先锋军的成员。感染瘟疫的人,每过一个小时,就会向四周扩散瘟疫,直到所有人全部感染上瘟疫。你已经掌握了感染源的位置,任务是算出血色先锋军的领主们感染瘟疫的时间,并且将它报告给巫妖王,以便对血色先锋军进行一轮有针对性的围剿。

输入

第1行:四个整数N,M,A,B,表示军团矩阵有N行M列。有A个感染源,B为血色敢死队中领主的数量。
接下来A行:每行有两个整数x,y,表示感染源在第x行第y列。
接下来B行:每行有两个整数x,y,表示领主的位置在第x行第y列。

输出

第1至B行:每行一个整数,表示这个领主感染瘟疫的时间,输出顺序与输入顺序一致。如果某个人的位置在感染源,那么他感染瘟疫的时间为0。

样例输入

5 4 2 3
1 1
5 4
3 3
5 3
2 4

样例输出

3
1
3

提示

如下图,标记出了所有人感染瘟疫的时间以及感染源和领主的位置。

【数据规模】
10%数据:N,M<=10
40%数据:N,M<=100
100%数据:1<=M,N<=500,1<=A,B<=M*N

我的ac代码(就是个bfs模板)

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;
int map[510][510];
bool visit[510][510];
int n, m, a, b;
int temp1, temp2;
queue<int>qx;
queue<int>qy;
void bfs() {int x, y, crux, cruy;int xf[] = { 0,0,1,-1 };int yf[] = { 1,-1,0,0 };while (!qx.empty()) {x = qx.front();y = qy.front();qx.pop();qy.pop();for (int i = 0; i < 4; i++) { //右左下上crux = x + xf[i];cruy = y + yf[i];if (!visit[crux][cruy] && crux >= 0 && cruy >= 0 && crux <= n - 1 && cruy <= m - 1) {visit[crux][cruy] = 1;map[crux][cruy] = map[x][y] + 1;qx.push(crux);qy.push(cruy);}}}
}
int main(void) {scanf("%d%d%d%d", &n, &m, &a, &b);for (int i = 0; i < a; i++) {scanf("%d %d", &temp1, &temp2);qx.push(temp1-1);qy.push(temp2-1);visit[temp1 - 1][temp2 - 1] = 1;}bfs();for (int i = 0; i < b; i++) {scanf("%d %d", &temp1, &temp2);printf("%d\n", map[temp1 - 1][temp2 - 1]);//cout << map[temp1 - 1][temp2 - 1] << endl;}
}

问题就出在我最后的输出部分,我用注释掉的cout跑出来时20000+ms,而我用printf跑出来1000ms,ac通关。(这个地方我沉思了好久,幸好有大佬让我改一下试试)

即使取消了输出流绑定

std::ios::sync_with_stdio(false);

与cin、cout之间的绑定(这个好像即使对我的代码用了也没啥用)

std::cin.tie(0);

cout也无力回天。

所以在OJ上做题最好还是用scanf+printf的组合做题,这回我是彻底放弃cin和cout了。

有无大佬解释一下原因?

关于我在刷题时用OJ判题发现的cout相较于printf严重超时的问题相关推荐

  1. 各大高校oj判题系统

    ACM OJ Collection(排名不分先后): 中国:(China) 华东地区: 浙江: 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 浙江大学(ZJU):http: ...

  2. 做算法题时的一些小技巧

    做算法题时的一些小技巧 技巧一: 在用C++做算法题时,我们会觉的cin,cout比scanf,printf使用起来更加的方便,不用指定输入输出格式. 但是cin,cout的运行时间比scanf,pr ...

  3. 在线判题系统hustoj的搭建

    摘要:ACM/ICPC程序设计竞赛,越来越受到各个高校的重视,是程序设计竞赛中的奥林匹克.Hustoj是搭建在linux系统上的判题系统.能够判断代码的正确性.会及时返回通过或者不通过,如果不通过会返 ...

  4. 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

    目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...

  5. 华为 oj java题库_华为OJ题目:刷题

    题目描述: 新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题.每天, ...

  6. 算法刷题时经常用到的前缀和思想

    今天我们来说一下刷题时经常用到的前缀和思想,前缀和思想和滑动窗口会经常用在求子数组和子串问题上,当我们遇到此类问题时,则应该需要想到此类解题方式,该文章深入浅出描述前缀和思想,读完这个文章就会有属于自 ...

  7. 刷了 1000 多道算法题,一点小小的心得!

    今天分享一下自己刷算法题目的经验. 首先,要明确你的目标,因为目标不同,刷算法的平台和方法也不同. 常见的目标有以下四种: 学习基本编程语法和思想 想找大厂工作,应对面试 算法竞赛 锻炼自己的思维 大 ...

  8. js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!

    订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...

  9. 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)

    @二级C语言考试 这几天我天天都在做C语言的题,从公共基础部分到C语言选择题部分,着重复习选择题部分.算下来已经刷了近1000道C语言的题了: 不过有些题明明是很简单的,却很容易错,它们容易混淆.看似 ...

最新文章

  1. word2vec模型评估_干货 | NLP中的十个预训练模型
  2. python环境设置_MacOS中的Python(和NumPy)开发环境设置
  3. git每个项目创建帐户名和密码
  4. iOS十进制切割格式转换
  5. 深度学习算法和机器学习算法_啊哈! 4种流行的机器学习算法的片刻
  6. socket android用法,Android NDK中socket的用法以及注意事项分析
  7. 8.5 输入输出重定向
  8. tomcat知识点总结
  9. csdn博客登录不上-why?
  10. Winform支付宝扫码支付
  11. pes2019服务器中断,实况足球2019卡顿原因及解决办法分享
  12. 按条件爬取百度百科词条及其相关词条的ID
  13. DOTween和iTween比较
  14. 单片机课程设计八音盒
  15. A Beautiful Song : Burning
  16. 【py】pandas
  17. 关于then()方法的理解
  18. L2-3 小A爱旅游 (25 分)
  19. centos 磁盘重新分区操作实践
  20. assign和weak的区别

热门文章

  1. wx微信小程序实现通讯录
  2. Qt和海康威视混合编程
  3. 2020年中国拉链行业发展现状及竞争格局分析,行业市场规模小幅下降,基本保持稳定「图」
  4. _csv.Error: field larger than field limit (131072)
  5. Graylog服务器rpm安装
  6. .stl文件载入错误原因分析
  7. 扫地机器人自动回冲工作原理
  8. Scrapy源码剖析前戏之Twisted使用
  9. Ubuntu18.04平台下用GitHub搭建个人博客(含域名绑定和更换主题)
  10. Python3.9的保留字彩蛋__peg_parser__