c++ 快读快写
放一点常用快速读入的板子在这里。
·
放一点常用快速读入的板子在这里
int 型整数变量快读
int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c>'9') { if (c == '-') f = -1; c = getchar(); }
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
快输
void write(int x) {
if(x==0){
putchar('0');return;
}
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
字符串快读
inline string read(){
char ch=getchar();
string st1="";
while (!((ch>='a')&&(ch<='z')))
ch=getchar();
while ((ch>='a')&&(ch<='z'))
st1+=ch,ch=getchar();
return st1;
}
double型快速读入
inline double DoubleRead(){
long long s = 0, w = 1, k = 0, n = 0, m = 0;
char ch = getchar();
while(ch < '0' || ch > '9'){
if(ch == '-') w = -1;
ch = getchar();
}
while((ch >= '0' && ch <= '9') || ch == '.'){
if (ch == '.')
n = 1;
else if (n == 0)
s = s * 10 + ch - '0';
else k = k * 10 + ch - '0', m++;
ch = getchar();
}
return (pow(0.1, m) * k + s) * w;
}
据说会更快的快读
namespace FAST_IO {
#define IN_LEN 250000
#define OUT_LEN 250000
//以上两个值无需修改
inline char Getchar() {
static char buf[IN_LEN], *l = buf, *r = buf;
if (l == r) r = (l = buf) + fread(buf, 1, IN_LEN, stdin);
return (l == r) ? EOF : *l++;
}
char obuf[OUT_LEN], *ooh = obuf;
inline void Putchar(char c) {
if (ooh == obuf + OUT_LEN) fwrite(obuf, 1, OUT_LEN, stdout), ooh = obuf;
*ooh++ = c;
}
inline ll rd() {
ll x = 0; int ch = Getchar(); bool f = 1;
while (!isdigit(ch) && (ch != '-') && (ch != EOF)) ch = Getchar();
if (ch == '-') { f = 0; ch = Getchar(); }
while (isdigit(ch)) { x = (x << 1) + (x << 3) + ch - '0'; ch = Getchar(); }
return f ? x : -x;
}
void write(ll x) { if (x >= 10) write(x / 10), Putchar((char)(x % 10 + '0')); else Putchar((char)(x + '0')); }
inline void flush() { fwrite(obuf, 1, ooh - obuf, stdout); }
}
using namespace FAST_IO;
更多推荐
所有评论(0)