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

如何创建手机网站网站优化

如何创建手机网站,网站优化,网页怎么制作的,网站建设 天津ST表不仅能处理区间最值问题,凡是符合结合律且可重复贡献的信息查询都可以使用ST表高效进行。可重复贡献的意义在于,可以对两个交集不为空的区间进行信息合并,显然最大值、最小值、最大公约数、最小公倍数、按位或、按位与都符合这个条件。 在…

ST表不仅能处理区间最值问题,凡是符合结合律且可重复贡献的信息查询都可以使用ST表高效进行。可重复贡献的意义在于,可以对两个交集不为空的区间进行信息合并,显然最大值、最小值、最大公约数、最小公倍数、按位或、按位与都符合这个条件。

在C++算法中,ST表的实现为以下步骤:

预处理阶段:构建一个二维数组 st [ ][ ],其中 st[i][j] 表示从下标 i 开始、长度为 2^j 的区间内的最值(或其他查询结果)。
预处理阶段时间复杂度为 O(nlogn),其中 n 表示数组的长度。
查询阶段:对于区间查询 [l, r],可以通过 st[l][k] 和 st [ r-2^k+1 ][k] 的最值(或其他查询结果)来快速获得该区间的查询结果,其中 k 是满足 2^k <= r - l + 1 的最大整数。

void buildST(int n) {for (int i = 0; i < n; i++) {st[i][0] = arr[i];}for (int j = 1; (1 << j) <= n; j++) { //枚举区间长度for (int i = 1; i + (1 << j)+1 <= n; i++) { //枚举区间开始起点st[i][j] = max(st[i][j-1], st[i + (1 << (j-1))][j-1]); //预处理区间最大值}}
}
int query(int l, int r) {int k = log2(r - l + 1);return max(st[l][k], st[r - (1 << k) + 1][k]);
}

这里详细解释一下查询代码的原理:

预处理阶段(buildST 函数)中,我们构建了一个二维数组 st,其中 st[i][j] 表示从位置 i 开始、长度为 2^j 的区间内的最大值。

在 query 函数中,我们首先计算区间的长度 r - l + 1,然后使用 log2 函数找到一个整数 k,使得 2^k 是不大于区间长度的最大的2的幂次方。这个 k 值对应了我们在预处理阶段建立的 st 数组的列索引。

接着,我们通过 st[l][k] 和 st[r - (1 << k) + 1][k] 来找到区间 [l, r] 中的最大值。这里的 (1 << k) 表达式实际上就是 2^k,它代表了以 l 为起点、长度为 2^k 的区间的左半部分,而 r - (1 << k) + 1 表示了以 r 为终点、长度为 2^k 的区间的右半部分。

通过比较这两个区间的最大值,我们可以得到区间 [l, r] 中的真正最大值。

下面一个模板题:st表模版题

模板代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define lowbit(x) ((x)&(-x))
#define fi first
#define se second
#define PII pair<int,int>
const int inf=1e18;
const int N=1e5+10;
int a[N],st[N][20];
void buildST(int n) {for (int j = 1; (1 << j) <= n; j++) { for (int i = 1; i + (1 << j)-1 <= n; i++) { st[i][j] = max(st[i][j-1], st[i + (1 << (j-1))][j-1]); }}
}
int query(int l, int r) {int k = log2(r - l + 1);return max(st[l][k], st[r - (1 << k) + 1][k]);
}
void solve(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];st[i][0]=a[i];}buildST(n);while(m--){int l,r;cin>>l>>r;cout<<query(l,r)<<"\n";}
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);//cout<<fixed<<setprecision(12); int T=1;//cin>>T;while(T--)solve();
}

http://www.dtcms.com/wzjs/23647.html

相关文章:

  • 如何建立一个网站的快捷方式如何发布自己的网站
  • 如何自己做网站模版泉州seo网站排名
  • 谷歌搜索排名安徽seo推广公司
  • 做门户网站的好处百度旗下推广平台有哪些
  • 仿一个网站seo建站是什么
  • 觉 网站河北seo技术培训
  • soho做网站多少钱淘宝seo排名优化软件
  • wordpress 设置子菜单深圳百度网站排名优化
  • 滇中引水建设管理局网站在线制作网页网站
  • 青岛本地网站百度首页排名优化公司
  • 如何做网站url优化软文推广广告
  • 网站建设在哪块做抖音运营推广策划方案
  • 学校类网站特点怎么免费注册域名
  • 网站跟软件有什么区别是什么网络舆情软件免费入口
  • 手机网站建设软件下载在哪里可以做百度推广
  • 焦作市网站建设百度关键词搜索引擎排名优化
  • 全国做网站找哪家好关键词排名靠前
  • 网站视频转码软件北京、广州最新发布
  • 网站多服务器建设引流客户的最快方法是什么
  • 石家庄做外贸的网站推广扬州seo
  • 衡水专业网站建设公司手机百度2020
  • 手机网站推荐导航页在线网页制作系统搭建
  • 企业网站建设的文献bt种子搜索
  • 网站建设专员seo搜索引擎优化方案
  • 奶茶电商网站建设网站优化的方法与技巧
  • 可以做设计私单的网站sem外包
  • 红酒专业网站建设福州seo管理
  • 自己做的网站出现iis7百度推广代理商
  • 长宁青岛网站建设淘宝seo搜索排名优化
  • 网站托管如何收费什么是网站推广