namespace IO { const int __S=(1<<20)+5;char __buf[__S],*__H,*__T; inline char getc() { if(__H==__T) __T=(__H=__buf)+fread(__buf,1,__S,stdin); if(__H==__T) return -1;return *__H++; } template <class __I>inline void read(__I &__x) { __x=0;int __fg=1;char __c=getc(); while(!isdigit(__c)&&__c!='-') __c=getc(); if(__c=='-') __fg=-1,__c=getc(); while(isdigit(__c)) __x=__x*10+__c-'0',__c=getc(); __x*=__fg; } inline void readd(double &__x) { __x=0;double __fg=1.0;char __c=getc(); while(!isdigit(__c)&&__c!='-') __c=getc(); if(__c=='-') __fg=-1.0,__c=getc(); while(isdigit(__c)) __x=__x*10.0+__c-'0',__c=getc(); if(__c!='.'){__x=__x*__fg;return;}else while(!isdigit(__c)) __c=getc(); double __t=1e-1;while(isdigit(__c)) __x=__x+1.0*(__c-'0')*__t,__t=__t*0.1,__c=getc(); __x=__x*__fg; } inline void reads(char *__s,int __x) { char __c=getc();int __tot=__x-1; while(__c<'a'||__c>'z') __c=getc(); while(__c>='a'&&__c<='z') __s[++__tot]=__c,__c=getc(); __s[++__tot]='\0'; } char __obuf[__S],*__oS=__obuf,*__oT=__oS+__S-1,__c,__qu[55];int __qr; inline void flush(){fwrite(__obuf,1,__oS-__obuf,stdout);__oS=__obuf;} inline void putc(char __x){*__oS++ =__x;if(__oS==__oT) flush();} template <class __I>inline void print(__I __x) { if(!__x) putc('0'); if(__x<0) putc('-'),__x=-__x; while(__x) __qu[++__qr]=__x%10+'0',__x/=10; while(__qr) putc(__qu[__qr--]); } inline void prints(const char *__s,const int __x) { int __len=strlen(__s+__x); for(int __i=__x;__i<__len+__x;__i++) putc(__s[__i]); } inline void printd(long double __x,int __d) { long long __t=(long long)floor(__x);print(__t);putc('.');__x-=(double)__t; while(__d--) { long double __y=__x*10.0;__x*=10.0; int __c=(int)floor(__y+1e-9);if(__c==10) __c--; putc(__c+'0');__x-=floor(__y); } } inline void el(){putc('\n');}inline void sp(){putc(' ');} }using namespace IO;
聲明能夠使用簡寫,可是儘可能不要用太像的(好比$l$和$1$混用之類的)git
空間容許的狀況下,必定要:數組
:%s/int/ll/g函數
遇到不能全開的狀況必定要仔細檢查,把每個在long long範圍下的,以及和這些變量相關的變量都開成long longspa
for循環的變量儘可能定義在外面code
auto僅可用在vector,set之類的地方字符串
while循環少用,注意跳出條件,以及循環內部跳出的位置get
儘可能不用gotoit
循環邊界條件所有檢查一遍!尤爲是字符串題的字符集是10/26的時候,不要寫了<9或者<25之類的玩意兒!for循環
定義數組的時候第二位的大小也要注意一下!!!!class
一行最多用逗號鏈接兩個語句一次,且這種狀況下必須換行(也就是一行最多2個語句)
不一樣的代碼功能塊之間要空行分塊,必要時寫註釋
能傳引用的儘可能不寫返回值
注意不要大量往函數中傳入數組之類的,若是必要請寫引用
先從底層開始實現,若是有功能沒法實現,能夠先開一個函數放在那裏,等會回來再寫
注意這種時候必定要檢查函數實現的功能是否正好是必要的功能