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

还能电子商务网站建设云指网站开发

还能电子商务网站建设,云指网站开发,淄博网站优化服务,wordpress搬家雾粉与最小值(简单版) 链接: 牛客 思路 题意是 给定我们数组a让我们完成{x,l,r}询问,判断是否在a中存在子数组满足长度在l,r之间且子数组最小值大于等于x,输出yes 或者 on 一个数组,长度越长,其最小值越小&#xff…

雾粉与最小值(简单版)

链接: 牛客

思路

题意是 给定我们数组a让我们完成{x,l,r}询问,判断是否在a中存在子数组满足长度在l,r之间且子数组最小值大于等于x,输出yes 或者 on
一个数组,长度越长,其最小值越小,所以询问只有最小长度是有用的,我们只需要判断是否存在子数组满足最小值大于等于x且长度大于询问的最小长度即可,所以我们的工作就是算出满足大于等于x的子数组的最大长度,显然暴力n^2的时间复杂度铁超时,这时候我们回想算一个子数组的最大长度,不就是找它左边第一个大于他的右边第一个大于他的数的区间嘛,单调队列,两趟O(n)拿下,然后我们获得了每个a[i]的扩展长度,也就是子数组的最小是a[i]的最大长度,这时候我们就像二分大于x的值判断长度是否大于询问的最小值了,可是这时候二分出来的第一个大于x的长度是满足大于等于x的最大长度吗?比如询问的x是5,我们二分出来的是7,7的长度是4,但是后面还有8的长度是9,是不是就错误了,所以我们要把8的长度9加到7的长度上,所以我们还需要给a[i]和他的扩展长度按照a[i]递减排序,然后累计最长长度加到每个a[i]身上,这样我们就确保了二分出来的就是最大长度,这里我们为了方便可以使用map进行二分操作。

代码


#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int n, m;
struct node{int x, y;bool operator < (node & tem){if(x != tem.x)return x > tem.x;return y > tem.y;}
};
// 单调栈
int l[N], r[N], len[N];
int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];}stack<int> st;// 找离a[i]最近的小于a[i]的最左位置//6 4 3 6维护一个单调减数列  1 3 2for(int i = 1; i <= n; i ++){while(st.size() && a[st.top()] >= a[i]){st.pop();}if(st.size()) l[i] = st.top()+1;else l[i] = 1;st.push(i);}// 找a[i] 右边最右的大于a[i]的元素stack<int> s;//1 2 3 8 2for(int i = n; i >= 1; i --){while(s.size() && a[s.top()] >= a[i]){s.pop();}if(s.size()) r[i] = s.top()-1;else r[i] = n;s.push(i);}vector<node> c;for(int i = 1; i <= n; i ++){len[i] = r[i] - l[i] + 1;c.push_back({a[i], len[i]});}sort(c.begin(), c.end());int maxlen = 0;map<int, int> cnt;for(int i = 0; i < c.size(); i ++){maxlen = max(maxlen, c[i].y);if(!cnt.count(c[i].x)) cnt[c[i].x] = maxlen;}cin >> m;for(int k = 1; k <= m; k ++){int x, ll, rr; cin >> x >> ll >> rr;auto res = cnt.lower_bound(x);if(res == cnt.end() || (res->second) < ll) cout << "No" << endl;else cout << "Yes" << endl;}return 0;
}

http://www.yayakq.cn/news/438119/

相关文章:

  • 网站建设许可证旅游网站建设项目
  • 专业网站建设定制公司哪家好公众号制作流程
  • 织梦生成网站地图wordpress修改元内容
  • asp网站做安全效果图网站名字
  • 网站互点可以自己点么黑帽seo易下拉霸屏
  • 深圳建设工程招投标网站网站根 html
  • 先进网站建设有哪些wordpress模板添加主题
  • 公司给别人做的网站违法吗wordpress登陆地址修改密码
  • 镇江地区做网站的公司有哪些电子商务网站策划书布局设计
  • 网站和平台有什么区别龙岗教育在线官网
  • 江诗丹顿手表网站遵义网络公司
  • 自己做网站要买服务器吗怎么查看网站用的php还是.net
  • 能在线做初中题的网站南京网站设计网站
  • wordpress 建站群高新网站开发建设多少钱
  • 网站建设出错1004最新的网站开发框架
  • 洛阳建设网站的公司网架公司需要给设计院提交的资料
  • 制作网站的步骤有哪些建设网站建设费用
  • 网站开发适合什么工作广州外贸网站效果
  • 知名网站建设制作贵州城乡和住房建设厅网站
  • 有哪些网站使用ftp英文网站开发
  • 中文手机网站设计案例什么网站好看用h5做
  • 手机网站和pc网站的区别网站建设流程包括哪些环节
  • 地区网站建设个人做视频网站视频储存
  • 怎么样做移动油光文字网站公司网站内容规划
  • python做网站本地安装wordpress步骤
  • 如何在百度开个网站da面板做两个网站
  • 网站风格设计视觉酒泉网站seo
  • 建设部网站园林绿化资质标准贵阳市乌当区住房与城乡建设局网站
  • 营销网站建设教学建设旅游电子商务网站的目的
  • 买表的网站自己做免费网站