说实话我就是喜欢cout,因为简单,不用记住%lld,%64d,%d,%s,%f,%lf之类的,所以从来不用printf。但是因为输入的巨大差距(见另一篇文章http://blog.csdn.net/cym19981017/article/details/49487549),所以我决定再写一篇关于输出的评测。
评测软件:cena
评测数据:noi2011道路建设后五个测试点,将输入的再输出一次;
评测环境:
处理器:Intel pentium G530 2.4GHZ 双核
内存:DDR3 1333 2GB 双通道
输入方式:
为了公平起见,和对系统的依赖尽可能少,全部scanf读入。
1.cout
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int n,a,b,c;
int main()
{
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
scanf("%d",&n);
cout<for(int i=1;iscanf("%d%d%d",&a,&b,&c);
cout<" "<" "<return 0;
}
2.cout(打消iostream的输入输出缓存)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int n,a,b,c;
int main()
{
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
ios::sync_with_stdio(false);
scanf("%d",&n);
cout<for(int i=1;iscanf("%d%d%d",&a,&b,&c);
cout<" "<" "<return 0;
}
3.printf
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int n,a,b,c;
int main()
{
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
scanf("%d",&n);
printf("%d\n",n);
for(int i=1;iscanf("%d%d%d",&a,&b,&c);
printf("%d %d %d\n",a,b,c);
}
fclose(stdin);
fclose(stdout);
return 0;
}
话说输出就没有输入差距那么大了,但是printf还是显得要快很多。。。希望有大神能发明急速输出,让我们的输出速度也有极大的飞跃。
从评测结果来看,noip还是不用太过于计较,但是noi和省选之类的我们就最好再一些时间复杂度刚刚好的一些题目上写printf了。
这里是输出2MB的数据,时间差了也不是太多,但估计很少会有让我们输出2MB那么多的数据吧?
(完)