题意:给定n个点的高度,支持修改和求高度大等于给定的值的连续的段数量。n<=100000

题解:段数=大等于高度的数量-相邻两个数的较小值大等于高度的数量。线段树或者树状数组

复杂度nlogn

#include<iostream>
#include<cstdio>
#include<algorithm>
#define N 524288
using namespace std;
int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}  int T1[N*2+5],T2[N*2+5];
struct ques
{int op,x,y;
}c[200005];int n,m,cnt=0;
int s[200005];
int l[500005];int query(int*T,int l,int r)
{
//    cout<<"query"<<l<<" "<<r<<endl;int sum=0;for(l+=N-1,r+=N+1;l^r^1;l>>=1,r>>=1){if(~l&1) sum+=T[l+1];if( r&1) sum+=T[r-1];    }return sum;
}void renew(int*T,int x,int ad)
{T[x+=N]+=ad;for(x>>=1;x;x>>=1)T[x]=T[x<<1]+T[(x<<1)+1];
}int main()
{n=read();m=read();for(int i=1;i<=n;i++)s[i]=l[i]=read();for(int i=1;i<=m;i++){c[i].op=read();c[i].x=read();if(c[i].op==2) l[i+n]=c[i].y=read();else l[i+n]=c[i].x;}sort(l+1,l+n+m+1);for(int i=1;i<=n+m;i++)if(l[i]!=l[i-1]) l[++cnt]=l[i];for(int i=1;i<=n;i++){s[i]=lower_bound(l+1,l+cnt+1,s[i])-l;renew(T1,s[i],1);}for(int i=1;i<=n;i++)renew(T2,min(s[i],s[i-1]),1);    for(int i=1;i<=m;i++){if(c[i].op==1){c[i].x=lower_bound(l+1,l+cnt+1,c[i].x)-l;printf("%d\n",query(T1,c[i].x,cnt)-query(T2,c[i].x,cnt));}else {c[i].y=lower_bound(l+1,l+cnt+1,c[i].y)-l;if(c[i].x!=1) renew(T2,min(s[c[i].x],s[c[i].x-1]),-1);if(c[i].x!=n) renew(T2,min(s[c[i].x],s[c[i].x+1]),-1);renew(T1,s[c[i].x],-1);s[c[i].x]=c[i].y;renew(T1,c[i].y,1);if(c[i].x!=1) renew(T2,min(s[c[i].x],s[c[i].x-1]),1);if(c[i].x!=n) renew(T2,min(s[c[i].x],s[c[i].x+1]),1);}}return 0;
}

提答题乱搞大概50分,34题都不会

转载于:https://www.cnblogs.com/FallDream/p/luogu2.html

[洛谷2月月月赛]富金森林公园相关推荐

  1. 洛谷P3616 富金森林公园

    题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于 ...

  2. 信息学奥赛一本通 1844:【06NOIP提高组】金明的预算方案 | 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案

    [题目链接] ybt 1844:[06NOIP提高组]金明的预算方案 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案 [题目考点] 1. 动态规划:分组背包 2. 动态规划:依赖背包 ...

  3. 洛谷2017-2月月赛

    打CF前随便打打,看了一眼只会做签到题,还挂了一次,95/400. A.富金森林公园 题目大意:给一个长度为n的数列,支持两种操作:1.修改一个数的值:2.给出一个k,问有多少段数大等于k.(N< ...

  4. 【树状数组 思维题】luoguP3616 富金森林公园

    树状数组.差分.前缀和.离散化 题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积 ...

  5. Mdoi R2 洛谷4月月赛I

    Mdoi R2 洛谷4月月赛I DIV2 A Car 题目描述 在MDOI市, 为了推行环保, 一辆车是否被限行的依据时车牌号和当天的日期. 车牌号的编码方式是这样的: **·**前三位均为大写字母, ...

  6. 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心

    题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi​,地面的高度是 h_0 = 0 ...

  7. 洛谷10月月赛 2 t2 深海少女与胖头鱼

    洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 ( ...

  8. 洛谷11月月赛(284pts rank85)

    https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...

  9. P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)

    众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...

最新文章

  1. linux yum localinstall 解决本地rpm包的依赖问题
  2. 投资学习网课笔记(part3)--基金第三课
  3. 浅析如何在Nancy中生成API文档
  4. 重新学习c++--理解引用、智能指针、虚函数、模板、容器
  5. JSON(2)--- 对象
  6. 代码英雄:波澜壮阔的操作系统之战(音频+长文)
  7. JavaEE——Mybatis(6)--association的分步查询与延迟加载 以及Collection和鉴别器discriminator...
  8. 中国高校鄙视链指南...
  9. 下载Visual Studio 2008 Beta 2
  10. GB28181移植总结
  11. 花瓣网爬取美女图片 每次20张
  12. 什么是webservice
  13. CUE 文件格式说明
  14. PS怎么做抽象流彩油画丙烯画效果
  15. 抱明月而长终;知不可乎骤得
  16. (转载)一次Linux系统被攻击的分析过程
  17. 华为新贵!方舟编译器的荣光和使命
  18. 查看TensorFlow checkpoint文件中的变量名和对应值
  19. 【阅读论文】第四章--分割渗出--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
  20. r420服务器安装系统,r420服务器bios设置

热门文章

  1. Bochs安装FreeDOS与调试
  2. js jquery操作的方面xml dom html dom css dom
  3. hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)
  4. Spring中IoC的入门实例
  5. struts2.0获取各种表单的数据
  6. 个简单C++程序反汇编解析 (Rev. 3)
  7. gcc与__cplusplus宏
  8. jvm十三:类加载器命名空间
  9. Spring事务之Propagation
  10. 实现简单的网页间的跳转