在网上查看别人的ACM代码时,发现别人输入输出语句用的总是scanf与printf,有点不解,还以为他们用的都是C语言,而非C++,但今天做的一道题(Sort):
发现与网上的其他高手使用完全相同的方法,使用scanf及printf的代码提交后Accepted,而使用cin及cout的却Time Limit Exceeded,代码如下:
代码一(Accepted):
#include<iostream>
using namespace std;
bool a[1000001];
int main()
{
int n, m, num, count;
while(scanf("%d%d",&n,&m)!=EOF){
memset(a, 0, sizeof(a));
for(int i=0; i<n; i++){
scanf("%d",&num);
a[num + 500000] = 1;
}
count = 0;
for(int j = 1000000; j >= 0; --j){
if(a[j]){
if(count == m - 1){
printf("%d\n",j-500000);
break;
}
printf("%d ",j-500000);
count++;
}
}
}
return 0;
}
代码二(Time Limit Exceeded):
#include<iostream>
using namespace std;
bool a[1000001];
int main()
{
int n, m, num, count;
while(cin >> n >> m){
memset(a, 0, sizeof(a));
for(int i=0; i<n; i++){
cin >> num;
a[num + 500000] = 1;
}
count = 0;
for(int j = 1000000; j >= 0; --j){
if(a[j]){
if(count == m - 1){
cout << j - 500000 << endl;
break;
}
cout << j - 500000 << " ";
count++;
}
}
}
return 0;
}
可以看出,代码思路完全一样,只是输入输出方法不同,问过老师,加上这一句代码后使用cin及cout也可以Accepted:
std::ios::sync_with_stdio(false);
百度了一下,原来而cin,cout之所以效率低,是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句可以来打消iostream的输入输出缓存,可以节省许多时间,使效率与scanf与printf相差无几,还有应注意的是scanf与printf使用的头文件应是stdio.h而不是iostream。
=======================签 名 档=======================
原文地址(我的博客):http://www.clanfei.com/2012/03/235.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================
分享到:
相关推荐
std::ios::sync_with_stdio(false); cin.tie(0); return 0; } 可以增强cin和cout的效率。 在做acm一些题时,经常出现 数据集超大造成 cin读入过多 超时的情况。 这是因为在c++中cin,cout虽然方便但是效率低。 ...
完美acm语音(audio)delphi开发控件: znACM ver5.1 完美的封装了微软的 acm 语音相关的函数,用于语音采集(录音),语音播放,使用简单(10分钟学会使用),可控制性强,容易扩展。 从使用角度出发,切合程序制作者...
浙江大学_acm程序设计竞赛_培训_线段树浙江大学_acm程序设计竞赛_培训_线段树浙江大学_acm程序设计竞赛_培训_线段树浙江大学_acm程序设计竞赛_培训_线段树浙江大学_acm程序设计竞赛_培训_线段树浙江大学_acm程序设计...
ACM的内部培训资料 很适合初学者
ACM中的数学问题_林舒.ppt
noi试题和解析,对于参加acm非常有帮助
上海交通大学的ACM算法模板,对于参加ACM竞赛的朋友们有帮助!
浙江大学ACM题解JU_ACM_All_Anwer,里面一本非常好的chm电子书,浙大的所有ACM题及题解都在了,对学习ACM的朋友非常的好~还等什么呢?
杭电hdu acm资料所用杭电的acm题
ACM的重要PPT资料,对初学者非常有益处
D:\acm\ACM函数整理_ACM模板.pdf
杭州电子科技大学ACM课件的压缩包 ACM课件(1)_初识ACM ACM课件(2)_老少皆宜数学题 ACM课件(3)_递推求解 ACM课件(4)_动态规划(1) ACM课件(5)_动态规划(2) ACM课件(6)_计算几何基础 ACM课件(7)_贪心算法 ACM课件(8)_...
ACM__ICPC__重要补充知识.doc
杭电计算机学院刘春英博士ACM培训课件,适合初学者,秒杀一切ACM基础培训!!!! ACM课件(1)_初识ACM ACM课件(2)_老少皆宜数学题 ACM课件(3)_递推求解 ACM课件(4)_动态规划(1) ACM课件(5)_动态规划(2) ACM...
实在没什么好东西,就找了以前在北大ACM上做的一些题 比较适合于初学程序设计和算法的同学
The 2014 ACM-ICPC Asia Beijing Regional Contest
关于ACM竞赛中经常出现的动态规划dp模板,有最大k段和,最大子段和等等
一些关于ACM算法的资料,包括5种算法的详细讲解和ACM题型分类以及一些基础题目
acm优秀模板,csdn上高积分下载下来的
acm答案1048,1115,1002,1915,2201,2736