博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5306 Gorgeous Sequence
阅读量:5057 次
发布时间:2019-06-12

本文共 1547 字,大约阅读时间需要 5 分钟。

留了几天的坑终于填了。。。

这个东西是线段树取区间最值问题。。。在吉司机16的论文里面。。。

其实就是让修改值和区间次大比较,假如次大较小就可以只改最大值,维护一下就可以了

注意到标记大小是按深度递增递增的

#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;struct node{ LL mx,mxc,sx,sum,md;}tr[2100000];int trlen,a[1100000];void update(int now){ int lc=now<<1,rc=now<<1|1; tr[now].sum=tr[lc].sum+tr[rc].sum; tr[now].mx=max(tr[lc].mx,tr[rc].mx); tr[now].mxc=0; if(tr[lc].mx==tr[now].mx)tr[now].mxc+=tr[lc].mxc; if(tr[rc].mx==tr[now].mx)tr[now].mxc+=tr[rc].mxc; tr[now].sx=max(tr[lc].sx,tr[rc].sx); if(tr[lc].mx!=tr[rc].mx) tr[now].sx=max(tr[now].sx,min(tr[lc].mx,tr[rc].mx));}void pushdown(int now){ if(tr[now].md!=0) { int lc=now<<1,rc=now<<1|1; if(tr[lc].mx>tr[now].md) { tr[lc].sum-=tr[lc].mxc*(tr[lc].mx-tr[now].mx); tr[lc].mx=tr[lc].md=tr[now].md; } if(tr[rc].mx>tr[now].md) { tr[rc].sum-=tr[rc].mxc*(tr[rc].mx-tr[now].mx); tr[rc].mx=tr[rc].md=tr[now].md; } }}//~~~~~~~~~~~~~~tool~~~~~~~~~~~~~~~~~~~~~~~~~void bt(int now,int ql,int qr){ if(ql==qr) { tr[now].mx=tr[now].sum=a[ql]; tr[now].mxc=1; tr[now].sx=-1; } else { int mid=(ql+qr)/2; int lc=now<<1,rc=now<<1|1; bt(lc,ql,mid),bt(rc,mid+1,qr); update(now); } tr[now].md=0;}void change(int now,int ql,int qr,int l,int r,LL k){ if(tr[now].mx<=k)return ; if(ql==qr){tr[now].mx=tr[now].sum=k;return ;} int mid=(ql+qr)/2; int lc=now<<1,rc=now<<1|1; if(ql==l&&qr==r) { if(tr[now].sx

 

转载于:https://www.cnblogs.com/AKCqhzdy/p/10242335.html

你可能感兴趣的文章
Rule 1: Make Fewer HTTP Requests(Chapter 1 of High performance Web Sites)
查看>>
sql注入
查看>>
「破解」Xposed强
查看>>
Linux 平台下 MySQL 5.5 安装 说明 与 示例
查看>>
src与href的区别
查看>>
ABAP工作区,内表,标题行的定义和区别
查看>>
《xxx重大需求征集系统的》可用性和可修改性战术分析
查看>>
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>
【转】JS生成 UUID的四种方法
查看>>
英语单词
查看>>
centos6.8下安装matlab2009(图片转帖)
查看>>
Mongo自动备份
查看>>
求助大神!怎样批量删除数据库表中某个字段中同样的一段字符!
查看>>
VMWARE虚拟机无法访问的三种方法分析
查看>>
enq: SQ - contention
查看>>
cer证书签名验证
查看>>
面向对象设计
查看>>
ant 安装
查看>>
新手Python第一天(接触)
查看>>