当前位置: 首页 > news >正文

百度在线入口seo关键词推广优化

百度在线入口,seo关键词推广优化,google wordpress,长春哪里做网站好✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨最小生成树 🍓朴素Prim 🍓Kruskal算法 ✨二分图 🍓匈牙利算法 ✨质数 🍓(1)质数的判定——试除法 🍓(2&…

博主:命运之光
专栏:算法基础学习

在这里插入图片描述

目录

 ✨最小生成树 

🍓朴素Prim

🍓Kruskal算法

✨二分图

🍓匈牙利算法

 ✨质数

🍓(1)质数的判定——试除法

🍓(2)分解质因数——试除法

✨约数

🍓(1)试除法求一个数的所有约数

🍓(2)约数个数

🍓(3)约数之和

🍓(4)欧几里得算法(辗转相除法)


前言:算法学习笔记记录日常分享,需要的看哈O(∩_∩)O,感谢大家的支持!


 ✨最小生成树 

🍓朴素Prim

🍓朴素版prim算法:

时间复杂度是 O(n2+m)O(n2+m), nn 表示点数,mm 表示边数

int n; // n表示点数
int g[N][N]; // 邻接矩阵,存储所有边
int dist[N]; // 存储其他点到当前最小生成树的距离
bool st[N]; // 存储每个点是否已经在生成树中
// 如果图不连通,则返回INF(值是0x3f3f3f3f), 否则返回最小生成树的树边权重之和
int prim()
{memset(dist, 0x3f, sizeof dist);int res = 0;for (int i = 0; i < n; i ++ ){int t = -1;for (int j = 1; j <= n; j ++ )if (!st[j] && (t == -1 || dist[t] > dist[j]))t = j;if (i && dist[t] == INF) return INF;if (i) res += dist[t];st[t] = true;for (int j = 1; j <= n; j ++ ) dist[j] = min(dist[j], g[t][j]);}return res;
}

🍓Kruskal算法

Kruskal算法:

时间复杂度是 O(mlogm)O(mlogm), nn 表示点数,mm 表示边数

int n, m; // n是点数,m是边数
int p[N]; // 并查集的父节点数组
struct Edge // 存储边
{int a, b, w;bool operator< (const Edge &W)const{return w < W.w;}
}edges[M];
int find(int x) // 并查集核心操作
{if (p[x] != x) p[x] = find(p[x]);return p[x];
}
int kruskal()
{sort(edges, edges + m);for (int i = 1; i <= n; i ++ ) p[i] = i; // 初始化并查集int res = 0, cnt = 0;for (int i = 0; i < m; i ++ ){int a = edges[i].a, b = edges[i].b, w = edges[i].w;a = find(a), b = find(b);if (a != b) // 如果两个连通块不连通,则将这两个连通块合并{p[a] = b;res += w;cnt ++ ;}}if (cnt < n - 1) return INF;return res;
}

✨二分图

染色法

判断一个图是不是二分图

二分图:可以把所有点分成两边,使所有边在集合之间,集合内部没有边。

二分图当且仅当图中不含奇数环

🍓染色法判别二分图:

时间复杂度是 O(n+m)O(n+m), nn 表示点数,mm 表示边数

int n; // n表示点数
int h[N], e[M], ne[M], idx; // 邻接表存储图
int color[N]; // 表示每个点的颜色,-1表示未染色,0表示白色,1表示黑色
// 参数:u表示当前节点,c表示当前点的颜色
bool dfs(int u, int c)
{color[u] = c;for (int i = h[u]; i != -1; i = ne[i]){int j = e[i];if (color[j] == -1){if (!dfs(j, !c)) return false;}else if (color[j] == c) return false;}return true;
}
bool check()
{memset(color, -1, sizeof color);bool flag = true;for (int i = 1; i <= n; i ++ )if (color[i] == -1)if (!dfs(i, 0)){flag = false;break;}return flag;
}

🍓匈牙利算法

🍓匈牙利算法:

时间复杂度是 O(nm)O(nm), nn 表示点数,mm 表示边数

int n1, n2; // n1表示第一个集合中的点数,n2表示第二个集合中的点数
int h[N], e[M], ne[M], idx; // 邻接表存储所有边,匈牙利算法中只会用到从第一个集合指向第二个集合的边,所以这里只用存一个方向的边
int match[N]; // 存储第二个集合中的每个点当前匹配的第一个集合中的点是哪个
bool st[N]; // 表示第二个集合中的每个点是否已经被遍历过
bool find(int x)
{for (int i = h[x]; i != -1; i = ne[i]){int j = e[i];if (!st[j]){st[j] = true;if (match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
// 求最大匹配数,依次枚举第一个集合中的每个点能否匹配第二个集合中的点
int res = 0;
for (int i = 1; i <= n1; i ++ )
{memset(st, false, sizeof st);if (find(i)) res ++ ;
}

 ✨质数

🍓所有大于1的自然数,所有<=1的数既不是质数也不是合数

定义:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者叫素数

🍓(1)质数的判定——试除法

质数的一个重要性质:如果d能整除n,显然n除d也能整除n

故发现n的所有的约数都是成对出现的(d与n/d都成成对出现的)

所以枚举时可以只枚举每一对当中较小的那一个,枚举:

🍓试除法判定质数:

bool is_prime(int x)
{if (x < 2) return false;for (int i = 2; i <= x / i; i ++ )if (x % i == 0)return false;return true;
}

🍓(2)分解质因数——试除法

从小到大枚举所有数

🍓试除法分解质因数:

void divide(int x)
{for (int i = 2; i <= x / i; i ++ )if (x % i == 0){int s = 0;while (x % i == 0) x /= i, s ++ ;cout << i << ' ' << s << endl;}if (x > 1) cout << x << ' ' << 1 << endl;cout << endl;
}

🍓

罗列出每个数,依次删除每个数的倍数,剩下的数就是质数,可以对此进行优化,可以不删每一个数的倍数, 可以只删质数的倍数,这样就不用重复删。

🍓质数定理:

优化完的筛法:埃氏筛法

🍓朴素筛法求素数:

int primes[N], cnt; // primes[]存储所有素数
bool st[N]; // st[x]存储x是否被筛掉
void get_primes(int n)
{for (int i = 2; i <= n; i ++ ){if (st[i]) continue;primes[cnt ++ ] = i;for (int j = i + i; j <= n; j += i)st[j] = true;}
}

🍓线性筛法:

把每一个合数用它的某个质因子筛掉

每个数都会被其最小质因子筛掉,而且每个数只有一个最小质因子,故每个数只会被筛一次

🍓线性筛法求素数:

int primes[N], cnt; // primes[]存储所有素数
bool st[N]; // st[x]存储x是否被筛掉
void get_primes(int n)
{for (int i = 2; i <= n; i ++ ){if (!st[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] <= n / i; j ++ ){st[primes[j] * i] = true;if (i % primes[j] == 0) break;}}
}

约数

约数

🍓(1)试除法求一个数的所有约数

🍓试除法求所有约数:

vector<int> get_divisors(int x)
{vector<int> res;for (int i = 1; i <= x / i; i ++ )if (x % i == 0){res.push_back(i);if (i != x / i) res.push_back(x / i);}sort(res.begin(), res.end());return res;
}

🍓(2)约数个数

🍓(3)约数之和

约数个数和约数之和:

如果 N = p1^c1 * p2^c2 * ... *pk^ck

约数个数: (c1 + 1) * (c2 + 1) * ... * (ck + 1)

约数之和: (p1^0 + p1^1 + ... + p1^c1) * ... * (pk^0 + pk^1 + ... + pk^ck)

🍓(4)欧几里得算法(辗转相除法)

🍓欧几里得算法:

int gcd(int a, int b)
{return b ? gcd(b, a % b) : a; // <表达式1>?<表达式2>:<表达式3>,
} //它的意思是,如果表达式1成立,则输出表达式2的值,否则输出表达式3的值

补充小知识:

两个数的积等于它们最大公约数和它们最小公倍数的

积。公式表示为 :a×b=gcd(a,b)×lcm(a,b)

🍓最小公倍数与最大公约数模板:


文章转载自:
http://allnighter.c7496.cn
http://musculoskeletal.c7496.cn
http://campanulate.c7496.cn
http://unbeatable.c7496.cn
http://disenchant.c7496.cn
http://crochet.c7496.cn
http://drinking.c7496.cn
http://mozarab.c7496.cn
http://heptastylos.c7496.cn
http://clerk.c7496.cn
http://fluently.c7496.cn
http://laborist.c7496.cn
http://numbers.c7496.cn
http://troxidone.c7496.cn
http://macaber.c7496.cn
http://sulfamethazine.c7496.cn
http://fantasm.c7496.cn
http://ventriloquism.c7496.cn
http://ethene.c7496.cn
http://cryophysics.c7496.cn
http://sundays.c7496.cn
http://wilkes.c7496.cn
http://redstart.c7496.cn
http://dulse.c7496.cn
http://esquire.c7496.cn
http://gentlewoman.c7496.cn
http://anthropolater.c7496.cn
http://repleviable.c7496.cn
http://glorify.c7496.cn
http://flunk.c7496.cn
http://officious.c7496.cn
http://fakir.c7496.cn
http://ionia.c7496.cn
http://refract.c7496.cn
http://profusion.c7496.cn
http://bioacoustics.c7496.cn
http://polyptych.c7496.cn
http://catlap.c7496.cn
http://radiobiology.c7496.cn
http://oedema.c7496.cn
http://counterapproach.c7496.cn
http://barrelage.c7496.cn
http://degradand.c7496.cn
http://terga.c7496.cn
http://ungovernable.c7496.cn
http://problematical.c7496.cn
http://fluxional.c7496.cn
http://dolichosaurus.c7496.cn
http://postmillenarianism.c7496.cn
http://muckamuck.c7496.cn
http://citroen.c7496.cn
http://rebeck.c7496.cn
http://hedgy.c7496.cn
http://malodor.c7496.cn
http://flippancy.c7496.cn
http://noninterference.c7496.cn
http://oomingmack.c7496.cn
http://irrefutability.c7496.cn
http://istria.c7496.cn
http://immensurable.c7496.cn
http://headstand.c7496.cn
http://ped.c7496.cn
http://simpai.c7496.cn
http://hardened.c7496.cn
http://amusia.c7496.cn
http://paster.c7496.cn
http://taxation.c7496.cn
http://mehitabel.c7496.cn
http://rippling.c7496.cn
http://pamphrey.c7496.cn
http://borecole.c7496.cn
http://levin.c7496.cn
http://amphitropous.c7496.cn
http://ingestible.c7496.cn
http://barsac.c7496.cn
http://statist.c7496.cn
http://tetrastyle.c7496.cn
http://aspectual.c7496.cn
http://ampoule.c7496.cn
http://willowy.c7496.cn
http://dibutyl.c7496.cn
http://quakerish.c7496.cn
http://ruijin.c7496.cn
http://annonaceous.c7496.cn
http://basidiomycete.c7496.cn
http://gnarled.c7496.cn
http://paros.c7496.cn
http://quarterday.c7496.cn
http://gunrunner.c7496.cn
http://amortize.c7496.cn
http://mulattress.c7496.cn
http://asexualize.c7496.cn
http://wryly.c7496.cn
http://lionlike.c7496.cn
http://blithely.c7496.cn
http://keeshond.c7496.cn
http://exec.c7496.cn
http://fustic.c7496.cn
http://hrvatska.c7496.cn
http://romanza.c7496.cn
http://www.zhongyajixie.com/news/78326.html

相关文章:

  • 做外汇网站做什么类型网站好东莞网站建设哪家公司好
  • 试玩网站怎么做google免费入口
  • 网站打不开第二天不收录啦小红书新媒体营销案例分析
  • 大学生网站的设计风格短视频平台推广方案
  • 网页与网站设计实验报告域名注册商
  • 做国际贸易的有哪有个网站产品宣传
  • 网页设计制作网站总结每日舆情信息报送
  • 中国建设规划采购网站天津seo培训机构
  • 网站开发新动力看b站视频下载软件
  • 网站百度权重没有数据重庆企业seo
  • 免费word模板网站室内设计网站
  • 个人备案网站可以做商城吗石家庄新闻头条新闻最新今天
  • 安防网站建设百度收录入口在哪里
  • 成都网站建设兴田德润实力强千锋教育课程
  • 怎么查看网站有没有做301微信公众号推广2元一个
  • 怎样做国外电子商务网站app 推广
  • 做可视化图表的网站seo大牛
  • dede新手做网站多久浙江企业seo推广
  • 怎么选一个适合自己的网站网站关键词推广
  • 苏州手机社区网站建设信息如何优化上百度首页
  • 常州网站推广机构赣州seo公司
  • 徐州丰县建设局网站营销渠道的概念
  • 学校让做网站做完怎么交推广普通话手抄报一等奖
  • 建设网站需要懂什么沈阳seo优化新势力
  • 做网站和做app的区别公司网站的作用
  • 外国人做外贸都会浏览哪些网站模板建站流程
  • 网络推广发展网络优化的工作内容
  • 建设委员会网站广西网站seo
  • 现在做什么网站好360推广登陆入口
  • 山东平台网站建设推荐免费网站推广网站短视频