C++是一门神奇的学科。。。算法
在读入/输出时,咱们常常用到:优化
scanf , cin , printf , cout
可是,在算法竞赛中,咱们奉行一个原则:spa
效率第一!blog
因而,便产生了各类各样的奇技淫巧。。。ci
下面的读入与输出优化就是其中之一。get
读入优化:it
C++自带的 scanf 已经很快了,可是100W的数据要0.6~0.8s,很明显,仍是慢了。class
为何?由于 scanf 带了许多厉害可是咱们不须要的的特判。效率
因而,读入优化破壳而出:date
inline int read(){ int date=0,w=1;char c=0; while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();} while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();} return date*w; }
调用时,只须要:
int x; x=read();
便可。
效率超级高!
输出优化:
有读入优化,就有输出优化:
inline void write(int x){ if(x<0){putchar('-');x=-x;} if(x>9)write(x/10); putchar(x%10+'0'); }
调用时,只要:
int x=10; write(x);
便可。
时间大幅下降!
总结:
C++中还有各类各样的奇技淫巧,好比什么:
inline , register
等。
好好利用它们,能够卡掉那些TLE的点,甚至逆转AC!