在ACM比赛过程中,一些大牛(佬)常常会使用一些奇淫技巧来优化自己的代码。甚至就连最简单的输入输出

都有一些常人意想不到的小技巧。

那么明明在C语言中有scanf()、printf(),C++中有cin、cout,为什么他们还要用输入输出外挂呢?这个问题很明显,一定是因为这些输入输出函数功能过于强大而导致效率低。

例如,许多学过c++,了解cin输入的人可能有所了解cin输入比较慢,在输入的时候需要关闭流同步来进行加速,即  std::ios::sync_with_stdio(false); 与  cin.tie(0); 语句

但是实际上cin与scanf的输入速度并没有多大差异,cin慢的原因主要在于默认cinstdin总是保持同步, 这一步是消耗时间大户,所以如果我们在一些输入规模较大的程序中如果要采用cin输入的话,我们就必须要关闭cin流输入与scanf的同步。

事实上,大多数时候scanf,cin的读入速度即可满足我们的要求。但是, 当输入规模达到1×10^6次方的时候,此时scanf,cin输入所产生的时间代价就不可以再忽略了,而当输入规模再增大到一定地步时,很有可能仅仅输入所耗费的时间就会导致程序超时。

因此,一些大牛开始思考更快更高效的读入方法,因为scanf函数的功能远远要比我们所需的多,而有些题目有可能我们只需要读入整数这一种功能,所以我们可以针对这一点进行专门的改造。例如,我们可以根据所有的输入本质上都是字符,而采用getchar()输入然后转换成相对应的数字。这样我们就得到了较为优秀的读入模板1:模板1

但是,大牛们并不满足,因此他们选择的更高效的fread的文件读入,选择先将数据一次性的全读入内存,然后再逐步处理,得到所需要的数据类型。并且,他们把这些读入方式封装成了一个名为FAST IO的命名空间内。于是,我们得到了史上最高效的读入数据模板2:模板2

因为这个读入方法是如此的高效,有时候一些读入数据量较大的题目有可能通过这个读入方法所优化的时间来弥补算法设计上的不足,此时它几乎起到了和游戏外挂相似的效果,因此我们把这种读入方法称为“输入挂”。

当然输入输出外挂一般用在大量输入输出的情况下,这样性价比才高一些,否则得不偿失(牺牲了代码长度而换来了微不足道的效率提升)。

今天,我们希望每一个人都能够体验一把大牛的感觉,因此我们在这里给出了输入挂的模板,大家只需套用模板即可 获取这道题目的AC。

Input

单组输入

首先输入一个整数 n(1 < n < 1000000000)

接下来是 n 个由空格分开的整数

Output

输出倒数第二个输入的数

Sample Input

3
1 2 3

Sample Output

2

Hint

Source

axuhongbo

#include<bits/stdc++.h>
using namespace std;
const int mx=1000101;
inline int read()
{register int c=getchar(),fg=1,sum=0;while(c>'9'||c<'0') {if(c == '-')fg = -1;c=getchar();}while(c<='9'&&c>='0'){sum=sum*10+c-'0';c=getchar();}return fg*sum;
}
int m,sum[mx],cnt,nn,mm;
int c[mx],a[mx];
int d;
int ans,x,y,z;
int main()
{int T,cas;char s[mx];int n,l,r;int fl;n=read();{for(int i=0;i<n;i++){r=read();if(i==n-2)l=r;}printf("%d\n",l);//if(flag) puts("Yes");else puts("No");//puts("");}return 0;
}/***************************************************
User name: zjx
Result: Accepted
Take time: 700ms
Take Memory: 220KB
Submit time: 2018-02-15 23:02:02
****************************************************/

cin cout加快相关推荐

  1. C++输入输出:cin/cout 还是 scanf/printf?

    相信使用C++的人都有一种迷惑或者是不自信:在输入输出的时候是不是应该使用scanf/printf更好呢,因为传说cin/cout龟速,我当时也长期被这个所困扰,后来在阅读C++ primer第五版的 ...

  2. C++基础::cin/cout

    cin/cout 的本质是流,cin 是输入流(istream),cout 是输出流(ostream). 进制: 默认十进制输出:cout << dec << 100 < ...

  3. C++中的cin cout

    #include using namespace std; //c++的输入输出流头文件 1.cin ①cin>>a; 直接输入变量. ②同时输入多个变量也是一样的写法. cin a> ...

  4. C++流式输入输出加速 给 cin/cout 装个小火箭

    C++流式输法加速 文章目录 C++流式输法加速 1. sync_with_stdio 和 endl 1.1 cin/cout 1.2 endl 2. cin.tie(0) External 相信很多 ...

  5. ACM C++ cin cout 加速IO

    #include <iostream> int main() {std::ios::sync_with_stdio(false);//这句话放在main里面的开始位置,就可以加速cin c ...

  6. C++入门之cin cout

    C++入门之cout语句 1.认识cin和cout c++中常用的输入输出语句有 "scanf" "printf" 和 "cin" &quo ...

  7. C++ 笔记(02)— 程序结构(头文件说明、命名空间、函数返回值、函数参数、注释、语句结束符、cin/cout)

    先看以下代码 #include <iostream> #include <string> using namespace std;int main() // main() 是程 ...

  8. C++ 输入输出(cin cout)加速/效率优化

    目录 一.cin 和 cout 效率低下的原因 二.解决方案 1. ios::sync_with_stdio(false): 2. cin.tie(NULL):cout.tie(NULL): 一.ci ...

  9. c语言cin cout,C++学习之:cout和cin用法总结

    cout cout 用于在屏幕上显示消息,应该是 console output 的简写.它是 C++ 中 ostream 对象,该类被封装在 库中,该库定义的名称都放在命名空间 std 中,所以 co ...

最新文章

  1. Linux 下查看文件的命令介绍
  2. 在重复3次的数组中查找
  3. 利剑无意之面试题(三)
  4. php 处理 http 请求,PHP的http请求处理类
  5. 算法试题 - 找出字符流中第一个不重复的元素
  6. 关于显示当前日期并且自动生成后面的日期,月份也正常显示
  7. Docker快速搭建docker-nfs-server服务器
  8. Android:QQ登录页面
  9. FPGA ROM存储器设计
  10. 从博客专栏想到的数据分析
  11. 基本共射放大电路的工作原理
  12. mysql单机qps能到多少_单机Qps上限是多少?
  13. UE4制作多人大地型游戏的优化
  14. ESXI 7.0 安装教程
  15. 计算文件及字符串的VBS脚本
  16. centos7下安装网易云音乐教程及相关依赖关系解决
  17. k折交叉验证 python_Python实现K折交叉验证法的方法步骤
  18. 网络1711班 C语言第一次作业批改总结
  19. 什么是智能插座,智能插座有什么用?
  20. Linux避免用rm误删文件 - 遗失的记忆 - 博客大巴

热门文章

  1. java threadlocal 并发_Java并发编程:ThreadLocal
  2. django mysql 名称_Django 自定义表名和字段名
  3. ios弧形进度条_IOS贝塞尔曲线圆形进度条和加载动画-阿里云开发者社区
  4. 专科python应届生工资多少-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
  5. python爬虫代码-学Python=写爬虫?不用代码也能爬下95%网站的数据!
  6. python基础教程-Python基础教程,Python入门教程(非常详细)
  7. python工资一般多少-Python工程师工资多少
  8. python工资一般多少p-Python是什么?简单了解pythonp-入门
  9. python和c++哪个好-python和C++语言哪个好?老男孩教育
  10. 语音性别识别_语音识别识别性别_语音文字识别 - 云+社区 - 腾讯云