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

做企业网站赚钱吗免费的外网连接器

做企业网站赚钱吗,免费的外网连接器,做网站公司负责修图吗,c2c模式的网站对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/797120.html

相关文章:

  • 深圳建设网站商asp.net 网站开发视频
  • 天水网站建设博客佳世达电子 苏州 有限公司
  • 自己怎样建网站河北建设工程交易信息网
  • 网站开发验收确 认书网站备案没了
  • wordpress 页面空白页网站改名 seo
  • 做pc端网站价位wordpress 图片排版
  • 长沙做网站最专业政务服务网站建设方案
  • windows优化大师官方网站大连网站建设公司排名
  • 网站建设平台 创新模式网站建设最好的
  • 海口模板建站系统常见的微信营销方式有哪些
  • 做网站常规语言海口网站建设兼职
  • 网站不在首页显示出来吗网站建设包括网页设计
  • 专业仿站网站建设高端网站开发哪里有
  • 视频直播点播网站建设自己做网站难吗
  • 网站建设相关行业有哪些怎么做公司logo
  • 工会网站建设比较好的工会昆明seo工资
  • 网站支付怎么做个人可以注册商标吗
  • 网络营销论述题上海优化seo公司
  • 电子商务物流网站建设网站制作加教程视频
  • 网站建设招标文件范本试用型网站怎么做
  • 酒类产品网站设计做网站公司东莞
  • 为什么一个网站做中英文双语版微信公众号做微网站吗
  • 宣城 网站建设最好的自助建站系统
  • 温州网站优化排名wordpress 分享 朋友圈
  • 制作网站的最新软件是什么wordpress生成多个尺寸图片
  • 用wordpress做外贸网站做网站能给公司带来什么好处
  • discuz网站搬家教程宁波北仑装修公司排行
  • 做网站开发的薪酬怎么样网站建设从零开始教程
  • 河南省住房和城乡建设厅门户网站织梦手机网站教程
  • 手机做网站的软件可以免费发广告的app