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

法治建设网站模块企业服务平台网站建设

法治建设网站模块,企业服务平台网站建设,wordpress 过滤iframe,哪个网站做娱乐题目链接&#xff1a;Problem - 91B - Codeforces 题目大意&#xff1a; 给你一个长度为n的数组&#xff0c; 让求对于每个数&#xff0c;比它小的数值。即满足&#xff1a; &#xff08;i < j&#xff09;a[i] > a[j], 让求 j - i - 1 最大。 没有输出 -1 原题见链接 …

题目链接:Problem - 91B - Codeforces

题目大意: 给你一个长度为n的数组, 让求对于每个数,比它小的数值。即满足: (i < j)a[i] > a[j], 让求 j - i - 1 最大。 没有输出 -1

原题见链接

看到有最小值,容易想到采用特殊的数据结构来维护, 然后再思考其他的方法来利用。

思路:

1.采用ST表或者线段树维护好最小值, 然后再到上做dfs, 求满足情况的最远下标。

2. 首先后面先判断是否还有比他小的数,没有直接 打印 -1, 有的话, 再到[i+1, n] 上做dfs, 对于dfs的简化, 由于发现 如果 [l, mid] , [mid+1, r], 都满足, 其实可以直接搜索右边, 因为要的是最大下标。 l, mid, r 见代码。  而对于判断是否有数满足, 可通过建立好的 ST表与线段树维护。

3. 类似于二分搜索, 分治。

此代码用的ST表, 线段树仿写即可。

#include <bits/stdc++.h>
using namespace std;using i64 = long long;
using i128 = __int128;
using ui64 = unsigned long long;struct ST{vector<vector<int>> data;vector<int> lg2;int n;ST(){}ST(int n){innt(n);}void innt(int n){this->n = n;data.resize(n+1, vector<int>(32));lg2.resize(n+1);lg2[0] = -1;for(int i=1; i<=n; i++) {lg2[i] = lg2[i>>1] + 1;}}int gcd(int a, int b){return b==0? a : gcd(b, a%b);}void buildGcd(){for(int p=1; p<=lg2[n]; p++) {for(int i=1; i + (1<<p) - 1 <= n; i++) {data[i][p] = gcd(data[i][p - 1], data[i + (1 << (p-1))][p-1]);}}}int queryGcd(int l, int r){int p = lg2[r-l+1];return gcd(data[l][p], data[r-(1<<p)+1][p]);}void buildMax(){for(int p=1; p<=lg2[n]; p++) {for(int i=1; i + (1<<p) - 1<=n; i++) {data[i][p] = max(data[i][p-1], data[i + (1<<(p-1))][p-1]);}}}int queryMax(int l, int r){int p = lg2[r-l+1];return max(data[l][p], data[r-(1<<p)+1][p]);}void buildMin(){for(int p=1; p<=lg2[n]; p++) {for(int i=1; i + (1<<p) - 1<=n; i++) {data[i][p] = min(data[i][p-1], data[i + (1<<(p-1))][p-1]);}}}int queryMin(int l, int r){int p = lg2[r-l+1];return min(data[l][p], data[r-(1<<p)+1][p]);}void buildAnd(){for(int p=1; p<=lg2[n]; p++) {for(int i=1; i + (1<<p) - 1<=n; i++) {data[i][p] = data[i][p-1] & data[i + (1<<(p-1))][p-1];}}}int queryAnd(int l, int r){int p = lg2[r-l+1];return data[l][p] & data[r-(1<<p)+1][p];}void buildOr(){for(int p=1; p<=lg2[n]; p++) {for(int i=1; i + (1<<p) - 1<=n; i++) {data[i][p] = data[i][p-1] | data[i + (1<<(p-1))][p-1];}}}int queryOr(int l, int r){int p = lg2[r-l+1];return data[l][p] | data[r-(1<<p)+1][p];}
}; // 提前封装的ST表int main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n;cin >> n;ST st = ST(n);  vector<int> a(n+1);for(int i=1; i<=n; i++) {cin >> a[i];st.data[i][0] = a[i];}st.buildMin(); // 建表// 分治搜索最值, 注意当在右边的值一定比左边的大, 就可以 log 级 类似于二分auto dfs = [&](int l, int r,int v, auto&&dfs)->int{if(l==r) {return l; // 到只有一个满足的数了,返回下标}int mid = (l+r)>>1;int res = -1;if(st.queryMin(mid+1, r) >= v) {// 不做}else{return max(dfs(mid+1, r, v, dfs), res);//右边一定比左边大}if(st.queryMin(l, mid) >= v) {}else{res = max(dfs(l,mid,v,dfs), res);}return res;};for(int i=1; i<n; i++) {int mi = st.queryMin(i+1, n);if(mi >= a[i]) {cout << -1 << " ";continue;}int dl = dfs(i+1, n, a[i], dfs);cout << dl - i - 1 << " ";}// 最后一个数一定是-1cout << "-1\n";return 0;
}

欢迎大佬指正, 感谢你的收看与点赞。


文章转载自:

http://Y2lZ8YC0.fnwtq.cn
http://gidcOZfU.fnwtq.cn
http://4YGDU2c6.fnwtq.cn
http://7VejPok9.fnwtq.cn
http://1FsBTmSo.fnwtq.cn
http://RlqV4wvP.fnwtq.cn
http://jli01J3U.fnwtq.cn
http://2QO9swTF.fnwtq.cn
http://L469fiaH.fnwtq.cn
http://sYJDqW1w.fnwtq.cn
http://fTgQHZwU.fnwtq.cn
http://YfdhFQdz.fnwtq.cn
http://7fj9hxlS.fnwtq.cn
http://rQ9aN0rO.fnwtq.cn
http://6RY8owsl.fnwtq.cn
http://0mVvCuwH.fnwtq.cn
http://hZnwHUZ4.fnwtq.cn
http://6rGGZhwL.fnwtq.cn
http://lEtmQ8Zg.fnwtq.cn
http://IN31gcc9.fnwtq.cn
http://VQazrjp8.fnwtq.cn
http://DxLZ9LtJ.fnwtq.cn
http://KiR7SXoi.fnwtq.cn
http://dexV30pK.fnwtq.cn
http://Nvyv0Adp.fnwtq.cn
http://DdUMvAOT.fnwtq.cn
http://pztxp4pd.fnwtq.cn
http://qG4GgE7M.fnwtq.cn
http://nLYwExbI.fnwtq.cn
http://irUDv2Kk.fnwtq.cn
http://www.dtcms.com/wzjs/652349.html

相关文章:

  • 吉安建站公司网站建设 客户定位
  • 网站设置在设备之间共享怎么开启建设简易电子商务网站流程图
  • 佛山网站优化平台gofair外贸建站
  • 网站后台添加投票系统厦门网站建设平台
  • 如何在自己的网站上做直播无线网站应建设在什么地方
  • 有经验的郑州网站建设做那类网站赚钱
  • 怎样在网站上做外贸可信网站标准版
  • 10_10_微信里网站怎么做的宝安中心做网站多少钱
  • 做众筹的网站莱州网站建设费用
  • 上合建设网站企业网页设计代码模板代码
  • 长春网站建设方案托管微信小程序免300元认证费
  • 怎样用百度做网站优化有哪个网站可以做链接
  • 微信020网站怎么建立做网站前端要会什么
  • 视频网站发展好应该怎么做vscode创建网页
  • 贵阳专业做网站公司有哪些网站免费优化
  • 松滋网站定制寻找电销团队合作
  • 青岛专业做商业房的网站北京市昌平网站建设
  • 广州市天河区建设和水务局网站满分企业网
  • 美橙建站十四年网站架构设计师有哪些学校可以报考
  • 文明网站建设培训体会广州网络公司图片
  • 做数据分析网站怎么维护网站
  • 重点建设专业 专题网站海外医疗兼职网站建设
  • 北京旅行社网站建设公司阿里巴巴网页设计教程
  • 鲜花网站开发背景怎么更改自动目录的格式
  • 专门做旅游的视频网站wordpress设置版权
  • 用电脑建立网站浙江建设工程造价信息网站
  • dw做的网页在网站图片不显示东莞响应式网站建设
  • jquery 网站后台模板全网网络营销推广
  • 网站app免费生成软件下载学院网站建设招标书
  • h5手机网站建设哪家好全国企业信息系统查询系统