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

可以做lebenslauf的网站关键词你们懂的

可以做lebenslauf的网站,关键词你们懂的,维护网站计划书,如何设计一个网页首页简易图片对ST表进行一个简单的总结,它可以实现O(1)的静态区间查询,可以适用于查询操作频繁但数据不修改的场景 题目来源 https://www.luogu.com.cn/problem/P3865 题目介绍 给定一个长度为 N 的数列,和 M 次询问,求出每一次询问的区间…

对ST表进行一个简单的总结,它可以实现O(1)的静态区间查询,可以适用于查询操作频繁但数据不修改的场景

题目来源

https://www.luogu.com.cn/problem/P3865

题目介绍

给定一个长度为 N 的数列,和 M 次询问,求出每一次询问的区间内数字的最大值。

解题思路

我们可以每次都对区间进行一次遍历,但这样的复杂度过高,我们可以进行一边预处理,最后实现O(1)的查询,我们先设置一个f的二位数组.

当j==0时,我们将数组中第 i 个元素的值放到f[i][0]中,对于 j > 0 的情况,我们根据倍增思想,将长度为2^j的区间划分为两个长度为2^(j-1)的子区间,即 [i, i + 2^(j - 1) - 1] 和 [i + 2^(j - 1), i + 2^j - 1]

因此,f[i][j]可以通过max(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]) 得到。

对于查询,我们可以设置一个p=log2(r-l+1),然后我们可以在[l,l+2^p-1]和[r-2^p+1,r]两个区间内找到我们所需要值,对其求最大即可。

解题代码

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<cstring>
#include<math.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
ll f[N][30];
void ST(int xx) {for (int i = 1; i <= xx; i++) {cin >> f[i][0];}for (int i = 1; i <= 20; i++) {for (int j = 1; j + (1 << i) - 1 <= xx; j++) {f[j][i] = max(f[j][i - 1], f[j + (1 << (i - 1))][i - 1]);}}
}
ll check(int l,int r) {ll p = log2(r - l + 1);return max(f[l][p], f[r - (1 << p) + 1][p]);
}
void slove() {int n, q;cin >> n >> q;ST(n);while (q--) {ll x, y;cin >> x >> y;cout << check(x, y) << "\n";}
}
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int ttt = 1;while (ttt--) {slove();}
}

与此同时,我们也可以求最小值,只需修改中间一段的代码

void ST(int xx) {for (int i = 1; i <= xx; i++) {cin >> f[i][0];}for (int i = 1; i <= 20; i++) {for (int j = 1; j + (1 << i) - 1 <= xx; j++) {f[j][i] = min(f[j][i - 1], f[j + (1 << (i - 1))][i - 1]);}}
}
ll check(int l,int r) {ll p = log2(r - l + 1);return min(f[l][p], f[r - (1 << p) + 1][p]);
}

总结

这题就是这样的,主要运用了倍增和预处理的思想。

                                                                                                                                     --撰稿人viture

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

相关文章:

  • 工商网站如何做企业增资免费一键生成个人网站
  • 免费做app网站建设厦门人才网个人会员登录
  • 留白的网站html网页制作软件有哪些
  • 重庆建设工程交易网南昌百度seo
  • 网页游戏网站hpjy企业网站优化推广
  • 在线网站推荐几个seo入门培训学校
  • 网站包装推广之网络营销案例广西网站seo
  • 网站用什么软件编写现在广告行业好做吗
  • java里面做网站都要学什么广州网站建设推荐
  • 设计外贸商城网站建设网站优化培训班
  • 怎么做网赌网站如何找外包的销售团队
  • 自己模板做网站在线h5免费制作网站
  • 360购物网站怎么做的指数运算法则
  • 门户网站做pos机今日热搜榜排行榜
  • 做爰网站有哪些指数分布的期望和方差
  • wordpress 调用小工具优化网站的目的
  • 什么网站能买建设摩托车写软文的app
  • 网站开发用户功能分析免费个人网站平台
  • 广州品牌策划公司有哪些百色seo外包
  • 徐州模板建站定制网站青岛爱城市网app官方网站
  • 有做酒席酒水网站吗武汉seo外包平台
  • 坪山做网站的公司seo在线诊断工具
  • 大连网站建设仟亿科技自媒体平台有哪些
  • 北京住房和城乡建设委员会网站公告腾讯企业qq
  • 企业做网站要注意些什么问题济南优化网站关键词
  • 巧家县住房和城乡建设局网站在线seo
  • 如何用用dw做网站后台网站seo的优化怎么做
  • 创新的手机网站建设发软文是什么意思
  • 东莞东城做网站公司网站seo在线优化
  • 济南智能网站建设费用怎么申请网站