关于我在刷题时用OJ判题发现的cout相较于printf严重超时的问题
今天刷题时碰到用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严重超时的问题相关推荐
- 各大高校oj判题系统
ACM OJ Collection(排名不分先后): 中国:(China) 华东地区: 浙江: 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 浙江大学(ZJU):http: ...
- 做算法题时的一些小技巧
做算法题时的一些小技巧 技巧一: 在用C++做算法题时,我们会觉的cin,cout比scanf,printf使用起来更加的方便,不用指定输入输出格式. 但是cin,cout的运行时间比scanf,pr ...
- 在线判题系统hustoj的搭建
摘要:ACM/ICPC程序设计竞赛,越来越受到各个高校的重视,是程序设计竞赛中的奥林匹克.Hustoj是搭建在linux系统上的判题系统.能够判断代码的正确性.会及时返回通过或者不通过,如果不通过会返 ...
- 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事
目录 1.话题引入 2.在刷题过程中一些自己想说的 3.刷题时的一些小建议 4.个人感悟 1.话题引入 首先介绍一下我自己,本人是一名专科大一的学生:非计算机本专业:因为想拓宽自己的知识面和技术:于是 ...
- 华为 oj java题库_华为OJ题目:刷题
题目描述: 新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题.每天, ...
- 算法刷题时经常用到的前缀和思想
今天我们来说一下刷题时经常用到的前缀和思想,前缀和思想和滑动窗口会经常用在求子数组和子串问题上,当我们遇到此类问题时,则应该需要想到此类解题方式,该文章深入浅出描述前缀和思想,读完这个文章就会有属于自 ...
- 刷了 1000 多道算法题,一点小小的心得!
今天分享一下自己刷算法题目的经验. 首先,要明确你的目标,因为目标不同,刷算法的平台和方法也不同. 常见的目标有以下四种: 学习基本编程语法和思想 想找大厂工作,应对面试 算法竞赛 锻炼自己的思维 大 ...
- js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!
订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...
- 【1】刷了1000道二级C语言的题,这些题竟然还是易错题!!(附C语言完整知识点)
@二级C语言考试 这几天我天天都在做C语言的题,从公共基础部分到C语言选择题部分,着重复习选择题部分.算下来已经刷了近1000道C语言的题了: 不过有些题明明是很简单的,却很容易错,它们容易混淆.看似 ...
最新文章
- word2vec模型评估_干货 | NLP中的十个预训练模型
- python环境设置_MacOS中的Python(和NumPy)开发环境设置
- git每个项目创建帐户名和密码
- iOS十进制切割格式转换
- 深度学习算法和机器学习算法_啊哈! 4种流行的机器学习算法的片刻
- socket android用法,Android NDK中socket的用法以及注意事项分析
- 8.5 输入输出重定向
- tomcat知识点总结
- csdn博客登录不上-why?
- Winform支付宝扫码支付
- pes2019服务器中断,实况足球2019卡顿原因及解决办法分享
- 按条件爬取百度百科词条及其相关词条的ID
- DOTween和iTween比较
- 单片机课程设计八音盒
- A Beautiful Song : Burning
- 【py】pandas
- 关于then()方法的理解
- L2-3 小A爱旅游 (25 分)
- centos 磁盘重新分区操作实践
- assign和weak的区别
热门文章
- wx微信小程序实现通讯录
- Qt和海康威视混合编程
- 2020年中国拉链行业发展现状及竞争格局分析,行业市场规模小幅下降,基本保持稳定「图」
- _csv.Error: field larger than field limit (131072)
- Graylog服务器rpm安装
- .stl文件载入错误原因分析
- 扫地机器人自动回冲工作原理
- Scrapy源码剖析前戏之Twisted使用
- Ubuntu18.04平台下用GitHub搭建个人博客(含域名绑定和更换主题)
- Python3.9的保留字彩蛋__peg_parser__