ACM模板——最大公约数

int gcd(int a,int b)
{
    return b == 0? a : gcd(b,a%b);
}

欧几里得辗转相除法

//返回最大公约数
//ax+by=gcd(a,b),求x,y
int exgcd(int a,int b,int &x,int &y)
{
    int d = a;
    if(b != 0)
    {
        d = exgcd(b,a%b,y,x);
        y -= (a/b) * x;
    }
    else{x = 1;y = 0;}
    return d;
}

扩展欧几里得

原文地址:https://www.cnblogs.com/Asurudo/p/10599270.html

时间: 2024-10-09 05:11:27

ACM模板——最大公约数的相关文章

ACM模板汇总

零散的算法模板最终将会整合在一起.之前整理过的模板已经传到github上,有多处错误且代码风格与现在我的不一致,懒得修改.今后会不断更新模板 模板传送门~

acm模板生成

为迎接,接下来的区域赛,要做好准备(虽然不是特别有信心,但是还是要鼓励自己,可以取得收获的,加油) acm_latex模板: https://www.cnblogs.com/palayutm/p/6444833.html#e69bb4e696b0_1 windows下安装texlive: https://blog.csdn.net/qq_38386316/article/details/80272396 等整理我们队的模板以后再发 原文地址:https://www.cnblogs.com/Dra

ACM模板——简单博弈

巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个.最后取光者得胜. if(n%(m+1)) first win else second win 巴什博弈 变种:取光者输 if(!(n-1)%(m+1)) second win else first win 巴什博弈变种 威佐夫博弈:有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. double r = (sqrt(5.0)+1)/2

ACM模板

目录 语法 c++ java 动态规划 多重背包 最长不下降子序列LIS 计算几何 向量(结构体) 判断两条线段是否相交 曼哈顿距离.切比雪夫距离 Pick定理 二维凸包 点是否在线段上 多边形面积 多边形的面积重心 三维向量(结构体) 三维凸包 数据结构 ST表 单调队列MQ 树状数组BIT 超级树状数组SPBIT 线段树ST 指针版线段树ST 带内存池指针版线段树ST 并查集DSU 左偏树LLT zkw线段树 多关键字堆 双头优先队列 数学 唯一分解 线性递推二项式系数 单个欧拉函数 编码与

ACM模板整理|2019/12/27

看到群里都是18.19级的学弟,才发现自己老了啊?? 还算充实的一天,就是电影还没看.. 最短路 Floyd 应用 1.Floyd求有向图最小环:枚举g[i][i] 2.Floyd求无向图最小环: if (f[k][i] && f[k][j] ) { ans = min(e[i][j]+2,ans); } const int inf = 0x3f3f3f3f; int g[MAX_N][MAX_N]; // 算法中的 G 矩阵 // 首先要初始化 g 矩阵 void init() { fo

ACM模板(持续补完)

1.KMP 1 #include<cstring> 2 #include<algorithm> 3 #include<cstdio> 4 using namespace std; 5 const int maxn=1e6; 6 char a[maxn+50],b[maxn+50]; 7 int f[maxn+50]; 8 int len1,len2,t; 9 int main() 10 { 11 scanf("%d\n",&t); 12 wh

ACM模板——分数类

#include <bits/stdc++.h> using namespace std; #define _for(i,a,b) for(int i = (a);i < (b);i ++) const int maxn = 50003; int gcd(int a,int b){if(b==0) return a;return gcd(b,a%b);} int lcm(int a,int b){return a/gcd(a,b)*b;} class Fraction { public:

ACM模板——线段树&amp;树状数组

施工中 原文地址:https://www.cnblogs.com/Asurudo/p/10658452.html

ACM模板——取模

const ll mod = 1000000007; ll mult_mod(ll a,ll b) //(a*b)%mod a,b,mod<2^63 { a %= mod; b %= mod; ll ans=0; while(b) { if(b&1) { ans=ans+a; if(ans>=mod) ans=ans-mod; } a=a<<1; if(a>=mod) a=a-mod; b=b>>1; } return ans; } 积取模 const l