[洛谷2月月月赛]富金森林公园
题意:给定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月月月赛]富金森林公园相关推荐
- 洛谷P3616 富金森林公园
题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于 ...
- 信息学奥赛一本通 1844:【06NOIP提高组】金明的预算方案 | 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案
[题目链接] ybt 1844:[06NOIP提高组]金明的预算方案 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案 [题目考点] 1. 动态规划:分组背包 2. 动态规划:依赖背包 ...
- 洛谷2017-2月月赛
打CF前随便打打,看了一眼只会做签到题,还挂了一次,95/400. A.富金森林公园 题目大意:给一个长度为n的数列,支持两种操作:1.修改一个数的值:2.给出一个k,问有多少段数大等于k.(N< ...
- 【树状数组 思维题】luoguP3616 富金森林公园
树状数组.差分.前缀和.离散化 题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积 ...
- Mdoi R2 洛谷4月月赛I
Mdoi R2 洛谷4月月赛I DIV2 A Car 题目描述 在MDOI市, 为了推行环保, 一辆车是否被限行的依据时车牌号和当天的日期. 车牌号的编码方式是这样的: **·**前三位均为大写字母, ...
- 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心
题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi,地面的高度是 h_0 = 0 ...
- 洛谷10月月赛 2 t2 深海少女与胖头鱼
洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 ( ...
- 洛谷11月月赛(284pts rank85)
https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...
- P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)
众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...
最新文章
- linux yum localinstall 解决本地rpm包的依赖问题
- 投资学习网课笔记(part3)--基金第三课
- 浅析如何在Nancy中生成API文档
- 重新学习c++--理解引用、智能指针、虚函数、模板、容器
- JSON(2)--- 对象
- 代码英雄:波澜壮阔的操作系统之战(音频+长文)
- JavaEE——Mybatis(6)--association的分步查询与延迟加载 以及Collection和鉴别器discriminator...
- 中国高校鄙视链指南...
- 下载Visual Studio 2008 Beta 2
- GB28181移植总结
- 花瓣网爬取美女图片 每次20张
- 什么是webservice
- CUE 文件格式说明
- PS怎么做抽象流彩油画丙烯画效果
- 抱明月而长终;知不可乎骤得
- (转载)一次Linux系统被攻击的分析过程
- 华为新贵!方舟编译器的荣光和使命
- 查看TensorFlow checkpoint文件中的变量名和对应值
- 【阅读论文】第四章--分割渗出--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
- r420服务器安装系统,r420服务器bios设置