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

网站登录系统源码seo在线排名优化

网站登录系统源码,seo在线排名优化,做网站就用建站之星,网站内链工作做足Problem - E - Codeforces 问题描述:数组H大小都不相同。从i到j是可行的,当且仅当 不存在 k ,使 ∣ i − k ∣ ≤ ∣ i − j ∣ , H k > H j 不存在k,使 \\ |i - k| \leq |i - j|, \quad H_k > H_j 不存在k,使…

Problem - E - Codeforces

问题描述:数组H大小都不相同。从i到j是可行的,当且仅当
不存在 k ,使 ∣ i − k ∣ ≤ ∣ i − j ∣ , H k > H j 不存在k,使 \\ |i - k| \leq |i - j|, \quad H_k > H_j 不存在k,使ikij,Hk>Hj

暴力 O(n * n),从当前点向两边进行扩散。

void solve() {int n;cin>>n;for(int i = 1; i <= n; ++i) cin>>a[i];for(int i = 1; i <= n; ++i) {int ma = -INF;int cnt = 0;int len = max(i - 1, n - i);for(int j = 0; j <= len; ++j) {int lvidx = i - j, rvidx = i + j;if(lvidx < 1) {ma = max({ma, a[rvidx]});if(a[rvidx] >= ma) cnt++;} else {ma = max({ma, a[lvidx], a[rvidx]});if(a[lvidx] >= ma) cnt++;if(a[rvidx] >= ma) cnt++;}}cout<<cnt - 2<<" ";}
}

优化:单调栈,对于i算出到左边和到右边第一个大于下标为i的元素值得长度或下标,用差分对半记录即可。

代码:

#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <set>
#include <map>
#include <queue>
#include <ctime>
#include <random>
#include <sstream>
#include <stack>
#include <numeric>
#include <stdio.h>
#include <functional>
#include <bitset>
#include <algorithm>
using namespace std;// #define Multiple_groups_of_examples
#define IOS std::cout.tie(0);std::cin.tie(0)->sync_with_stdio(false);
#define dbgnb(a) std::cout << #a << " = " << a << '\n';
#define dbgtt cout<<" !!!test!!! "<<endl;
#define rep(i,x,n) for(int i = x; i <= n; i++)#define all(x) (x).begin(),(x).end()
#define pb push_back
#define vf first
#define vs secondtypedef long long LL;
typedef pair<int,int> PII;
/*** https://codeforces.com/gym/103185/problem/E* 题意:对每一个i找到满足条件的j, 其中条件为:不存在k, 使 abs(i - k) <= abs(i - j) && Hj  < Hk 成立* 解法:std:https://github.com/Diego1149/ICPC-Latam-2020 (好像是用线段树写的*      other:https://blog.csdn.net/m0_53807008/article/details/119065842* * 思路:单调栈*      两次单调栈。这里为了简单,假设 1 <= i < j <= n*      第一次找 对于j来说,从i到j中满足条件的元素(这里j是题意中的i。*      第二次找,对于i来说,从i到j中满足条件的元素(这里i就是题意中的i。* e.g. 下标:      ... 符合条件的  i  符合条件的 ...*      对于第一次来说:*          比a[i]小的最大元素(记为A)下标找到,将比a[i]小的最大元素下标对应得pre数组赋值 i - 1,表示,最后一个小于A的下标位置。*          对于那个最大元素下标(记为idx),使 idx 对应的元素可以worth的长度为 [idx, i - 1]的一半。*          记录用差分记录即可。*      第二次,倒着来一边,同第一次。
*/
const int INF = 0x3f3f3f3f;
const int N = 2e5 + 21;
int a[N];
int pre[N], suf[N];
int lef[N], rig[N];
void inpfile();
void solve() {int n; cin>>n;for(int i = 1; i <= n; ++i) cin>>a[i];a[n+1] = INF; // 让 n + 1 等于inf, 0 等于inf,因为要让所以的都出栈stack<int> sk;// 考虑a[i]对左边的贡献sk.push(1);for(int i = 2; i <= n+1; ++i) {// 如果当前 H 大于 上一个H,将上一个H对应的下标进行记录while(sk.size() && a[i] > a[ sk.top()]) {pre[ sk.top()] = i - 1; // 将i - 1进行赋值,表示到i - 1 ,大于的条件一直是成立的sk.pop();}sk.push(i);}for(int i = 1; i <= n; ++i) {lef[i+1]++; // 将i + 1 先进行++,表示有一个贡献if(pre[i] != n) // 如果等于n,表示,恒成立,不用--,// 否则,只能到达 (i + pre[i]) / 2 的下标,利用差分 就是 [ r + 1]--lef[ (i + pre[i]) / 2 + 1]--;}// 考虑a[i]对右边的贡献// 思路及代码同上sk.push(n);a[0] = INF;for(int i = n - 1; i >= 0; --i) {while(sk.size() && a[i] > a[ sk.top()]) {suf[ sk.top()] = i + 1;sk.pop();}sk.push(i);}for(int i = 1; i <= n; ++i) {rig[i-1]++;if(suf[i] != 1)rig[ (i + suf[i] + 1) / 2 - 1]--;}// 差分前缀和for(int i = 1; i <= n; ++i) lef[i] += lef[i-1];for(int i = n; i >= 1; --i) rig[i] += rig[i+1];for(int i = 1; i <= n; ++i) cout<<lef[i] + rig[i]<<" ";
}
int main()
{#ifdef Multiple_groups_of_examplesint T; cin>>T;while(T--)#endifsolve();return 0;
}
void inpfile() {#define mytest#ifdef mytestfreopen("ANSWER.txt", "w",stdout);#endif
}

Gym - 103185E E - Excellent Views_流锡的博客-CSDN博客

http://www.ds6.com.cn/news/61316.html

相关文章:

  • 蛋糕网站内容规划信息流广告
  • 阿里云搭建网站友情贴吧
  • 各种购物网站大全如何建立自己的博客网站
  • 四平做网站佳业首页重庆百度seo
  • 微股东微网站制作平台百度刷seo关键词排名
  • 文化馆为何需要建设自己的网站百度最新财报
  • 网址导航下载爱站网站seo查询工具
  • 网站推广新手入门教程18款禁用网站app直播
  • 网站建设面包屑导航条seo站长工具 论坛
  • 教育网站建设方案模板网络营销的产品策略
  • 可以上传网站的免费空间黄冈便宜的网站推广怎么做
  • 建网站做点什么好营销团队外包
  • wordpress标签内链公司seo是什么职位
  • 快速建网站模板推广赚钱的平台
  • 温州网站设计图片大全网络营销的渠道
  • 网站怎么做搜索引擎优化_百度怎么发布自己的信息
  • 门户网站开发维护合同google站长工具
  • .net 网站开发教程今日重要新闻
  • 官网建站哪个程序最好网络广告推广平台
  • ps做网站的时候分辨率是站外推广方式
  • 最专业微网站多少钱搜索引擎优化实验报告
  • 南宁网站建设多少钱今日小说百度搜索风云榜
  • wordpress支持iframeseo推广 课程
  • 东莞广告公司东莞网站建设厦门网站建设公司名单
  • 惠州网站建设选惠州邦好看的网站ui
  • 青岛做物流网站零基础能做网络推广吗
  • 藁城网络推广吉林seo推广
  • 做视频用的网站有哪些能翻到国外的浏览器
  • 营销qq手机版seo研究协会网
  • 个人博客网站域名注册凡科建站多少钱