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

私人诊所网站源码做网站用什么软件好

私人诊所网站源码,做网站用什么软件好,响应式装饰设计公司网站源码,cs5怎么做网站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/11304.html

相关文章:

  • 通辽网站公司网站seo方案撰写
  • p2p网站制作价格360推广登录平台
  • 中山网站建设优化怎么自己建网站
  • 企业网站备案条件舆情管理
  • yum wordpress旺道智能seo系统
  • 山东地产网站建设海南seo
  • 海口网站建设咨询网站关键词优化多少钱
  • 网店推广方案范文北京seo顾问
  • 教育类网站开发文档农产品推广方案
  • 南沙建设网站爱站网关键词挖掘工具
  • 山东济南市网站建设百度网盘云资源搜索引擎
  • 武汉网站建设公司费用价格药品网络营销公司
  • 第一推是谁做的网站南京百度推广开户
  • 微商城开发公司有哪些比较好安庆seo
  • 服装公司网站建设需求分析报告游戏广告联盟平台
  • 好的做问卷调查的网站搜狐酒业峰会
  • 漆包线 东莞网站建设腾讯竞价广告
  • 北京高端网站开发代运营服务
  • 全flash网站欣赏seo外链资源
  • wordpress音乐单独播放网站关键词优化方案
  • 用jsp做网站的代码2023年最新时政热点
  • 做app还是做微网站好北京seo公司wyhseo
  • 网站空间哪家做的好朋友圈软文
  • 做网站哪个系统最安全yahoo引擎入口
  • 嘉兴做网站优化价格广州网站推广
  • 国家高新技术企业含金量搜索引擎优化的工具
  • 企业网站开发需求分析个人网站制作模板主页
  • 网站初期缺点企业网站制作要求
  • 怎么宣传自己的网站推广外贸网站建站
  • 网站制作公司珠海新手怎么做销售