• 【模板】一坨数学算法


    求GCD

    1 int gcd(int a,int b){return !b ? a : gcd(b,a%b);}

    线性筛求[1,n]的质数

     1 bool isprime[1000];
     2 int prime[100],tot;
     3 void pri(int n)
     4 {
     5     tot = 0;
     6     memset(isprime,true,sizeof(isprime));
     7     int i,j;
     8     for(i=2;i<=n;i++)
     9     {
    10         if(isprime[i]) prime[++tot] = i;
    11         for(j=1;j<=tot&&i*prime[j]<=n;j++)
    12         {
    13             isprime[i*prime[j]] = false;
    14             if(i%prime[j]==0) break;
    15         }
    16     }
    17 }
    View Code

    扩展欧几里得算法

     1 int exgcd(int a,int b,int &x,int &y)
     2 {
     3     if(!b)
     4     {
     5         x = 1,y = 0;
     6         return a;
     7     }
     8     int ret = exgcd(b,a%b,x,y);
     9     int t = x;
    10     x = y;
    11     y = t - a/b * y;
    12     return ret;
    13 }
    View Code
  • 相关阅读:
    高精度 模板
    《图论》邻接表
    模板整理
    H
    C
    同余定理的应用(处理大数
    H
    1153: 简易版最长序列
    1152: 二分搜索
    1151: 大整数加法(正数)
  • 原文地址:https://www.cnblogs.com/hzs2000/p/7337098.html
Copyright © 2020-2023  润新知