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

手机网站免费制作平台女教师遭网课入侵视频大全

手机网站免费制作平台,女教师遭网课入侵视频大全,商城网站开发业务,长沙微信网站制作题目链接 CF方向 Luogu方向 题目解法 考虑在值域上的问题:有多少段区间,对应在排列上不超过 2 2 2 段 肯定需要枚举一个端点,另一个快速算出,考虑枚举值域区间右端点 r r r,计算 l l l 可以发现,新增…

题目链接

CF方向
Luogu方向

题目解法

考虑在值域上的问题:有多少段区间,对应在排列上不超过 2 2 2
肯定需要枚举一个端点,另一个快速算出,考虑枚举值域区间右端点 r r r,计算 l l l
可以发现,新增一个数对应在排列上的区间有 3 种不同的情况

  1. 新增一个段
  2. 合并 2 个段
  3. 和左边或右边相连,段数不变

这三种操作对应的值域区间范围不难得出,然后线段树维护即可
时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)
这道题的一个启发是:添加一个数,可以快速维护出以这个数为右端点的所有区间对应在一个数列上的连通段的个数

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=300100;
int n,col[N],pos[N];
struct Node{int mn1,mn2,sum1,sum2,tag;
}seg[N<<2];
struct SegmentTree{void build(int l,int r,int x){seg[x].tag=0,seg[x].mn1=0,seg[x].sum1=r-l+1,seg[x].mn2=1e9,seg[x].sum2=0;if(l==r) return;int mid=(l+r)>>1;build(l,mid,x<<1),build(mid+1,r,x<<1^1);}Node merge(Node lc,Node rc){Node ret;ret.sum1=ret.sum2=ret.tag=0;ret.mn1=min(lc.mn1,rc.mn1);ret.mn2=min(lc.mn2,rc.mn2);if(lc.mn1>ret.mn1) ret.mn2=min(ret.mn2,lc.mn1);if(rc.mn1>ret.mn1) ret.mn2=min(ret.mn2,rc.mn1);if(lc.mn1==ret.mn1) ret.sum1+=lc.sum1;if(rc.mn1==ret.mn1) ret.sum1+=rc.sum1;if(lc.mn1==ret.mn2) ret.sum2+=lc.sum1;if(rc.mn1==ret.mn2) ret.sum2+=rc.sum1;if(lc.mn2==ret.mn2) ret.sum2+=lc.sum2;if(rc.mn2==ret.mn2) ret.sum2+=rc.sum2;return ret;}void pushdown(int x){int D=seg[x].tag;// cout<<"Delta : "<<D<<'\n';seg[x<<1].mn1+=D,seg[x<<1].mn2+=D,seg[x<<1].tag+=D;seg[x<<1^1].mn1+=D,seg[x<<1^1].mn2+=D,seg[x<<1^1].tag+=D;seg[x].tag=0;}void modify(int l,int r,int x,int L,int R,int v){if(L<=l&&r<=R){// cout<<l<<' '<<r<<' '<<seg[x].mn1<<' '<<v<<'\n';seg[x].mn1+=v,seg[x].mn2+=v,seg[x].tag+=v;// cout<<l<<' '<<r<<' '<<seg[x].mn1<<' '<<v<<'\n';return;}pushdown(x);int mid=(l+r)>>1;if(mid>=L) modify(l,mid,x<<1,L,R,v);if(mid<R) modify(mid+1,r,x<<1^1,L,R,v);seg[x]=merge(seg[x<<1],seg[x<<1^1]);// cout<<l<<' '<<r<<' '<<seg[x<<1].mn1<<' '<<seg[x<<1^1].mn1<<' '<<seg[x].mn1<<'\n';}Node query(int l,int r,int x,int L,int R){if(L<=l&&r<=R) return seg[x];pushdown(x);int mid=(l+r)>>1;if(mid>=L&&mid<R) return merge(query(l,mid,x<<1,L,R),query(mid+1,r,x<<1^1,L,R));if(mid>=L) return query(l,mid,x<<1,L,R);return query(mid+1,r,x<<1^1,L,R);}
}sg;
inline int read(){int FF=0,RR=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') RR=-1;for(;isdigit(ch);ch=getchar()) FF=(FF<<1)+(FF<<3)+ch-48;return FF*RR;
}
int main(){n=read();for(int i=1;i<=n;i++) col[i]=read(),pos[col[i]]=i;sg.build(1,n,1);LL ans=0;for(int i=1;i<=n;i++){int L=col[pos[i]-1],R=col[pos[i]+1];//add a block -> L and R not addedint bound=max(L>i?1:L+1,R>i?1:R+1);//opt : [bound,i] +1sg.modify(1,n,1,bound,i,1);//merge two blocksbound=min(L,R);if(max(L,R)<i&&bound>0){//opt : [1,bound] -1sg.modify(1,n,1,1,bound,-1);}//merge with L or R//[min(L,R)+1,max(L,R)] do not changeif(i>1){Node t=sg.query(1,n,1,1,i-1);if(t.mn1<=2) ans+=t.sum1;if(t.mn2<=2) ans+=t.sum2;}}printf("%lld",ans);return 0;
}
/*
10 
5 6 1 3 4 9 10 2 8 7
*/
http://www.hkea.cn/news/453440/

相关文章:

  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广