1)快读
inline int read() { int x=0;char c=getchar(); while(c <'0' || c >'9' ) c=getchar(); while(c>='0' && c<='9' ) x=(x<<1)+(x<<3)+c-'0',c=getchar(); return x; }
快输
inline void print(int x) { if(x<0) putchar('-'),x=-x; if(x>9) print(x/10); putchar(x%10+'0'); }
2)数据类型
register 相当于一种“暗示”。 它暗示你的内存cache这个变量将会频繁使用,使得你的cache存下该变量以便直接调用。用于局部非char变量定义中
static相同,加在局部char型变量中
3)gcd和lcm
inline int gcd(int x, int y){return y?gcd(y,x%y):x;} inline int lcm(int n,int m){return n*m/gcd(n,m);}//与gcd函数连用
4)并查集
inline int find(int k) { if(f[k]==k) return k; return f[k]=fd(f[k]); } inline void mr(int v,int u) { int t1=fd(v),t2=fd(u); if(t1!=t2)f[t2]=t1; }