bzoj 4553 && HEOI2016 day1t3 seq
一个序列在所有变换中都单调不降的条件是i<j,a[i]<=min[j],mx[i]<=a[j],所以套CDQ就行了。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 100005
#define inf 0x3f3f3f3f
using namespace std;
int n,m;
int a[N];
int f[N];
int mx[N],mn[N];
int tmp[N];
int v[N];
int res;
bool cmp(int x,int y)
{
if(x<=res&&y<=res)return mx[x]<mx[y];
if(x<=res)return mx[x]<=a[y];
if(y<=res)return a[x]<mx[y];
return a[x]<a[y];
}
int dp[N];
struct node
{
int lazy,zhi;
}aa[N*];
void push_down(int x)
{
if(aa[x].lazy!=)
{
aa[x*].zhi=aa[x*+].zhi=-inf;
aa[x*].lazy=aa[x*+].lazy=;
aa[x].lazy=;
}
return ;
}
int qur(int x,int l,int r,int ll,int rr)
{
if(l>=ll&&r<=rr)
{
return aa[x].zhi;
}
push_down(x);
int mid=(l+r)>>;
if(rr<=mid)return qur(x*,l,mid,ll,rr);
if(ll>mid)return qur(x*+,mid+,r,ll,rr);
return max(qur(x*,l,mid,ll,rr),qur(x*+,mid+,r,ll,rr));
}
void gai(int x,int l,int r,int pos,int z)
{
if(l==r)
{
aa[x].zhi=max(aa[x].zhi,z);return ;
}
push_down(x);
int mid=(l+r)>>;
if(pos<=mid)gai(x*,l,mid,pos,z);
else gai(x*+,mid+,r,pos,z);
aa[x].zhi=max(aa[x*].zhi,aa[x*+].zhi);
}
void solve(int l,int r)
{
if (l==r)
{
f[l]=max(f[l],);
return ;
}
int mid=(l+r)>>;
solve(l,mid);res=mid;
int cnt=;
for(int i=l;i<=r;i++)tmp[++cnt]=i;
sort(tmp+,tmp+cnt+,cmp);
aa[].lazy=;aa[].zhi=-inf;
for(int i=;i<=cnt;i++)
{
if(tmp[i]<=mid)gai(,,,a[tmp[i]],f[tmp[i]]);
else f[tmp[i]]=max(f[tmp[i]],qur(,,,,mn[tmp[i]])+);
}
solve(mid+,r);
}
int main()
{
scanf("%d%d",&n,&m);
memset(mx,0xcf,sizeof(mx));
memset(mn,0x3f,sizeof(mn));
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
mx[i]=mn[i]=a[i];
}
for(int i=;i<=m;i++)
{
int t1,t2;
scanf("%d%d",&t1,&t2);
mx[t1]=max(mx[t1],t2);
mn[t1]=min(mn[t1],t2);
}
solve(,n);
int ans=;
for(int i=;i<=n;i++)ans=max(ans,f[i]);
printf("%d\n",ans);
return ;
}
bzoj 4553 && HEOI2016 day1t3 seq的更多相关文章
- BZOJ.4553.[HEOI2016&TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)
题目链接:BZOJ 洛谷 \(O(n^2)\)DP很好写,对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]=d[j]+1\) for(int j=1; j<i; ++j) if(a[ ...
- 洛谷 P4093: bzoj 4553: [HEOI2016/TJOI2016]序列
题目传送门:洛谷P4093. 题意简述: 给定一个长度为 \(n\) 的序列 \(a\). 同时这个序列还可能发生变化,每一种变化 \((x_i,y_i)\) 对应着 \(a_{x_i}\) 可能变成 ...
- BZOJ 4556 [HEOI2016/TJOI2016]字符串
BZOJ 4556 [HEOI2016/TJOI2016]字符串 其实题解更多是用后缀数组+数据结构的做法,貌似也不好写. 反正才学了 sam 貌似比较简单的做法. 还是得先二分,然后倍增跳到 $ s ...
- BZOJ 4553 Tjoi2016&Heoi2016 序列
Tjoi2016&Heoi2016序列 Description 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值 可能会变化,但同一个时刻最 ...
- BZOJ 4553 [Tjoi2016&Heoi2016]序列 ——CDQ分治 树状数组
考虑答案的构成,发现是一个有限制条件的偏序问题. 然后三个维度的DP,可以排序.CDQ.树状数组各解决一维. #include <map> #include <cmath> # ...
- 【50.40%】【BZOJ 4553】[Tjoi2016&Heoi2016]序列
Time Limit: 20 Sec Memory Limit: 128 MB Submit: 371 Solved: 187 [Submit][Status][Discuss] Descript ...
- 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq(线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=1798 之前写了个快速乘..........................20多s...... 还好 ...
- 【BZOJ 1798】 [Ahoi2009]Seq 维护序列seq
Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...
- BZOJ.4555.[HEOI2016&TJOI2016]求和(NTT 斯特林数)
题目链接 \(Description\) 求\[\sum_{i=0}^n\sum_{j=0}^iS(i,j)\times 2^j\times j!\mod 998244353\] 其中\(S(i,j) ...
随机推荐
- 初识JAVA之OOP
有一段时间没发博客了,每次手打还是很累,但感觉很充实.. 最近发现很多初学者到了面向对象编程这个知识点时,不太清楚类是如何转化成为对象的,很是困扰,今天我在这里谈谈我的理解,大家一起来研究学习... ...
- 活用UML-软件设计高手(广州 2014年6月14-15日)
我们将在广州为您奉献高级技术课程”活用UML-软件设计高手“,首席专家张老师将会为您分享软件架构设计.数据库设计.用户体验设计及详细设计的最佳实践,帮助您成为优秀的软件设计师! 时间:2014.06. ...
- Win7 安装SQL SERVER 2012需要SP1补丁
在操作系统Win7上安装SQL Server 2012时,报如下错误: 也就是说SQL Server 2012如要要安装在Windows 7 上,则至少需要安装SP1补丁.否则就会弹出上面提示信息.关 ...
- 0029 Java学习笔记-面向对象-枚举类
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...
- PostgreSQL-psql
打开查看元命令实际执行的sql的功能和关闭 yun=> \set ECHO_HIDDEN on yun=> \set ECHO_HIDDEN off psql中输入\?查看命令提示 资讯性 ...
- Python写地铁的到站的原理简易版
Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这 ...
- 超详细的java反射教程
看技术博客时,看到关于java反射的博文,写的非常好.猛击下面的地址,开始java反射之旅 中文翻译地址:http://ifeve.com/java-reflection/ 英文原版地址:http:/ ...
- log4j配置详解
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...
- Comparison of SQL Server Compact, SQLite, SQL Server Express and LocalDB
Information about LocalDB comes from here and SQL Server 2014 Books Online. LocalDB is the full SQL ...
- HTML ------ 关于表单 Form
Form(表单)主要用于采集和提交用户输入的信息,是页面与WEB服务器交互过程中 最重要的信息来源. 掌握表单(Form)有以下几个要点: 重要form属性 form常用控件 form提交方式 § 重 ...