#include <iostream> #include <cstdio> #include <cctype> #define SIZE (1 << 21) #define Getchar() (pr1 == pr2 && (pr2 = (pr1 = fr) + fread(fr, 1, SIZE, stdin), pr1 == pr2) ? EOF : *pr1++) #define Putchar(ch) (pw < SIZE ?…
0. 在有些输入数据很多的变态题中,scanf会大大拖慢程序的时间,cin就更慢了,所以就出现了读入优化.其原理就是一个一个字符的读入,输出优化同理,主要使用getchar,putchar函数. 1. int型读入优化(long long的只要把x改成long long型即可): #include<cctype> inline int read() { ,f=; char ch=0; while(!isdigit(ch)) {f|=ch=='-';ch=getchar();} )+(x<…
C和C++有了#define,从此它就变了模样 宏命令就是#define,#if,#error之类的 本文主要介绍宏命令和相关的骚操作 读入输出优化 inline int read() { int ans=0,f=1; char c=getchar(); while (!isdigit(c)) { if (c=='-') f=-1; c=getchar(); } while (isdigit(c)) { ans=(ans<<3)+(ans<<1)+(c^48); c=getchar…
序: 在之前的测试中,我们比较了四种读入方式,发现使用读入优化是最快的选择,但是我们知道fread()是比它更快的方法.这一次,我们对比四种读入优化,探寻C++读取速度的极限. 分别是getchar()两种方式以及fread()两种方式. 测试数据为1e5,1e6,1e7的大小,每次测试循环5次或7次,力求测试结果的稳定性.(共测试6次) 首先是两种getchar()读入,由于在之前的测试中出现过,故只附代码. inline void read1(int &curr) { static char…
当我们考试时遇到大量的读入或者输出时,这些代码会耗费许多运行程序的时间,导致TL 本来 log2n 的算法因为读入被卡成线性的就太不划算了,所以我们这里要采用读入输出优化 getchar 和 putchar 是最快的读入输出方式,变量名尽量用一些不是很常用的,以免冲突 #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #i…
读入优化 int read() { ; ') ; '; ') num=num*+c-'; return ff*num; } 输出优化 void write(int x) { ) { putchar('-'); x=-x; } )write(x/); putchar(x%+'); }…
题面描述 红莉栖想要弄清楚楼下天王寺大叔的显像管电视对“电话微波炉(暂定)”的影响.选取显像管的任意一个平面,一开始平面内有个n电子,初始速度分别为vi,定义飘升系数为 $$\sum_{1\leqslant i < j\leqslant n}|v_{i}\times v_{j}|^{2}$$ 由于电视会遭到大叔不同程度的暴击,电子的速度常常会发生变化.也就是说,有两种类型的操作: •1 p x y将vp改为(x;y) •2 l r询问[l,r]这段区间内的电子的飘升系数 这么简单的问题红莉栖当然…
读入输出优化虽然对于小数据没有半点作用,但是对于大数据来说,可以优化几十ms. 有时就是那么几十ms,可以被卡掉大数据的点 读入优化 int read() { int x=0,sig=1; char c; for(c=getchar();c<'0'||c>'9';c=getchar())if(c=='-')sig=-1; for(;c>='0'&&c<='9';c=getchar())x=x*10+c-48; return x*sig; } 输出优化(这个貌似没什么…
读入优化:读入优化只是针对整数,由于getchar()读字符非常的快,所以采用getchar()来进行读入,下设输入的数为x 负数处理:用一个标志变量f,开始时为1,当读入了'-'时,f变为-1,最后x*=f即可 绝对值部分处理:getchar()每次只能读一位,所以每当读了一位s时,x*=10,为s留位置,由于s为字符,需要减去'0'才能转为整数即:x=x*10+s-'0' 关于细节: 很多时候有多余的空格或者其它的一些无关字符输入,处理时需要注意排除 代码: void read(int &x…
P2634 [国家集训队]聪聪可可 题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏. 他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树).并且每条“边”上都有一个数.接下来由聪聪和可可分别随即选一个点(当然他们选点时是看不到这棵…