对于快读中
w=(w<<3)+(w<<1)+(c^48);
这一行语句不太了解
inline int read(){ int w=0; char c=getchar(); while(c>'9'||c<'0') c=getchar(); while(c>='0'&&c<='9'){ w=(w<<3)+(w<<1)+(c^48); c=getchar(); } return w; }