首页 > 代码库 > 常用模板

常用模板

快速读入与快速输出:

 1 inline int read(){
 2     int x=0,d=1;
 3     char c=getchar();
 4     while((c>9||c<0)&&c!=-)c=getchar();
 5     if(c==-)d=-1;
 6     while(c>=0&&c<=9){
 7         x=x*10+c-0;
 8         c=getchar();
 9     }
10     return x*d;
11 }
12 
13 inline void write(int num){
14     if(num>9)write(num/10);
15     putchar(num%10+0);
16 }

组合数打表:

1 void init(){
2     for(int i=0;i<=500;++i){
3         for(int j=0;j<=i;++j){
4             C[i][j]=(i==0||j==0)?1:(C[i-1][j]+C[i-1][j-1]);
5         }
6     }
7 }

幂次求和:

Σ(i,1,n)(i)=n*(n+1)/2= 1/2 * n2 +  1/2 * n
Σ(i,1,n)(i2)=n*(n+1)*(2n+1)/6= 1/3 * n3 + 1/2 * n2 +1/6 * n
Σ(i,1,n)(i3)= (n*(n+1)/2)2 = 1/4 * n4 + 1/2 * n3 +1/4 * n2
Σ(i,1,n)(i4)= n*(n+1)*(2n+1)*(3x2+3x-1)/30 = 1/5 * n5 + 1/2 * n4 + 1/3 * n3 - 1/30 * n
Σ(i,1,n)(i4)= n*(n+1)*(2n3+4n2+n-1)/12
 
 
海伦公式:
S=sqrt(p*(p-a)*(p-b)*(p-c));
p=(a+b+c)/2.0;

常用模板