快读快写

字符串和字符

1.cin/cout别用,太慢!

2.scanf/printf不要用%c,太危险!同理也不要想着利用C里scanf的语言特性进行过滤那怎么办呢?用%s!
%s是处理数组的,当然也可以处理字符数组,但是他可以想读取int一样遇到空格,回车,换行就停下来,就像scanf%d一样稳!于是对数组进行一个解析即可

3.用%c的地方getchar就行

快读

//字符串
inline string rd()
{
string str="";
char ch=getchar();
//处理空格或回车
while(ch==' ' || ch=='\n' || ch=='\r')
{
ch=getchar();
}
//读入
while(ch!=' ' && ch!='\n' && ch!='\r')
{
str+=ch;
ch=getchar();
}
return str;
}

快写

inline void print(string s)
{
for(int i=0; s[i]!='\0'; i++) putchar(s[i]);
}

数字

快读

//int型数据,longlong或其它改一下数据类型就行
inline int rd()
{
char ch=getchar();
int x=0,w=1;
//过滤掉其他字符
while(ch<'0'|| ch>'9')
{
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
{
//代替x=x*10+ch-'0';
x=(x<<1) + (x<<3) +(ch^48);
ch=getchar();
}
return x*w;
}

快写

inline void print(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9) print(x/10);
putchar(x%10+'0');
}