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

做教育网站多少钱引流软件下载站

做教育网站多少钱,引流软件下载站,中国制造网谷歌seo,苏州网页制作倍增 倍增算法是一种优化算法,通常用于某些需要高效计算指数幂的场景。它基于分治的思想,通过反复求平方来实现快速计算指数幂的目的。在实际应用中,倍增算法经常用于解决最近公共祖先问题、二分查找等。 1、快速幂详解 ksm核心代码 倍增就是…

倍增

倍增算法是一种优化算法,通常用于某些需要高效计算指数幂的场景。它基于分治的思想,通过反复求平方来实现快速计算指数幂的目的。在实际应用中,倍增算法经常用于解决最近公共祖先问题、二分查找等。

1、快速幂详解

ksm核心代码

在这里插入图片描述

倍增就是基于二进制的指数倍相乘,使得效率更高。任何一个数的幂都可以看作二进制来计算。

ll ksm(ll a,ll n){ll r=1;while(n!=0){if(n&1){r*=a;}a=a*a;n=n>>1;}return r;
}

简单应用:

  • 计算a^n mod m
  • 计算斐波那契数列第n项
  • 将线性变换重复n次

注:矩阵的乘法计算

2、链式前向星举例

2.1、图

关于图的定义方式:

struct Edge {int next; // 下一条边的编号int to;   // 这一条边的终点int w;    // 权值
} e[maxn];

一般的输入方式都是:u -> v w 边 边 权

ll tot, head[maxn];
void add(ll u, ll v, ll w) {++tot; // 加入一条新边的编号e[tot].next = head[u]; // 新的边插在原来的第一个位置,所以next指向原来的head[u]e[tot].w = w;e[tot].to = v; // 下一条边head[u] = tot; // 新的边成为第一条变了
}

代码案例:

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
using namespace std;
using ll = long long;
#define maxn 110001
struct Edge {int next; // 下一条边的编号int to;   // 这一条边的终点int w;    // 权值
} e[maxn];
ll tot, head[maxn];
void add(ll u, ll v, ll w) {++tot; // 加入一条新边的编号e[tot].next = head[u]; // 新的边插在原来的第一个位置,所以next指向原来的head[u]e[tot].w = w;e[tot].to = v; // 下一条边head[u] = tot; // 新的边成为第一条变了
}
int main() {IOS;// 添加边add(1, 2, 10);add(1, 3, 20);add(2, 4, 30);add(3, 4, 40);add(4, 5, 50);	// 打印图的邻接表for (int i = 1; i <= 5; ++i) {cout << "Vertex " << i << ": ";for (int j = head[i]; j != 0; j = e[j].next) {cout << "(" << e[j].to << ", " << e[j].w << ") ";}cout << endl;}return 0;
}

2.2、树

LCA问题

	int n;cin>>n;vector<vector<int>> graph(n+1);for(int i=1;i<n;i++){//n-1 条边int u,v;cin>>u>>v;graph[i].push_back(u);graph[i].push_back(v);//邻接矩阵}//倍增数组vector<array<int,21>> fa(n+1);//array<int,21> 固定的数组大小21vector<int> dep(n+1);//深度function<void(int,int)> dfs = [&](int x,int f){fa[x][0]=f;for(int i=1;i<=20;i++){fa[x][i]=fa[fa[x][i-1]][i-1];}//遍历数组for(const auto& tox:graph[x]){if(tox==f)continue;dep[tox]=dep[x]+1;dfs(tox,x);}};dfs(1,0);auto glca = [&](int x,int y){if(dep[x]<dep[y])swap(x,y);int d=dep[x]-dep[y];for(int i=20;i>=0;i--){if(d>>i & 1)x=fa[x][i];}if(x==y)return x;for(int i=20;i>=0;i--){if(fa[x][i] != fa[y][i]){x=fa[x][i];y=fa[y][i];}}return fa[x][0];};
http://www.hkea.cn/news/889185/

相关文章:

  • 桂林论坛天涯社区培训行业seo整站优化
  • 做伊瑞尔竞技场的网站搜索引擎简称seo
  • 46云虚拟主机股票发行ipo和seo是什么意思
  • 新泰做网站菏泽seo
  • 网站建设排名东莞seo收费
  • 做网站前后端的发布流程自己如何制作网站
  • 网站营销与推广策略百度一下官网首页百度
  • 网站建设张世勇100个免费推广b站
  • 网络营销的常用工具百度关键词优化点击 教程
  • 公司网站要怎么做少儿编程培训机构排名前十
  • 一个好的网站是什么样的商家联盟营销方案
  • 网站解除域名绑定网站广告收费标准
  • 郑州的建设网站有哪些手续免费发布推广信息的平台有哪些
  • 手机做网站软件优化服务平台
  • 网站图片装修的热切图怎么做营销技巧培训
  • 可以上传图片的网站怎么做百度关键词点击
  • 泉州网站制作广州seo网站开发
  • cuntlove wordpressseo外链发布工具
  • 购买一个网站空间如何可以多个域名使用吗长沙网站建设服务
  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化