一个序列在所有变换中都单调不降的条件是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的更多相关文章

  1. 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[ ...

  2. 洛谷 P4093: bzoj 4553: [HEOI2016/TJOI2016]序列

    题目传送门:洛谷P4093. 题意简述: 给定一个长度为 \(n\) 的序列 \(a\). 同时这个序列还可能发生变化,每一种变化 \((x_i,y_i)\) 对应着 \(a_{x_i}\) 可能变成 ...

  3. BZOJ 4556 [HEOI2016/TJOI2016]字符串

    BZOJ 4556 [HEOI2016/TJOI2016]字符串 其实题解更多是用后缀数组+数据结构的做法,貌似也不好写. 反正才学了 sam 貌似比较简单的做法. 还是得先二分,然后倍增跳到 $ s ...

  4. BZOJ 4553 Tjoi2016&Heoi2016 序列

    Tjoi2016&Heoi2016序列 Description 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值 可能会变化,但同一个时刻最 ...

  5. BZOJ 4553 [Tjoi2016&Heoi2016]序列 ——CDQ分治 树状数组

    考虑答案的构成,发现是一个有限制条件的偏序问题. 然后三个维度的DP,可以排序.CDQ.树状数组各解决一维. #include <map> #include <cmath> # ...

  6. 【50.40%】【BZOJ 4553】[Tjoi2016&Heoi2016]序列

    Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 371  Solved: 187 [Submit][Status][Discuss] Descript ...

  7. 【BZOJ】1798: [Ahoi2009]Seq 维护序列seq(线段树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1798 之前写了个快速乘..........................20多s...... 还好 ...

  8. 【BZOJ 1798】 [Ahoi2009]Seq 维护序列seq

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  9. 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) ...

随机推荐

  1. 【Swift】 应用内显示 AppStore 某个应用的详情

    前言 应用内跳转到 AppStore 的文章很多,一般都是用 SKStoreProductViewController 来实现的,不知道有没有在意一个问题:打开很慢!!怎么忍?! 声明 欢迎转载,但请 ...

  2. 处理Xcode 警告

    除了代码中我们手动加入的 #Waring  标示 所产生的警告,我们都应该重视.下面是一些警告的处理. 1,方法过期,或 使用新的api  替换方案 multipartFormRequestWithM ...

  3. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  4. Linux平台卸载MySQL总结

    如何在Linux下卸载MySQL数据库呢? 下面总结.整理了一下Linux平台下卸载MySQL的方法. MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries).R ...

  5. ORA-01078: failure in processing system parameters & LRM-00109: could not open parameter file

    安装了Oracle 12C后,启动数据库的过程中出现如下错误 SQL> startup ORA-01078: failure in processing system parameters LR ...

  6. MapRedue开发实例

    一些例子,所用版本为hadoop 2.6.5 1.统计字数 数据格式如下(单词,频数,以tab分开): A 100 B 97 C 98A 98 package com.mr.test; import ...

  7. WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)——所有webapi似乎都缺失的一个功能

    最近的工作我在做一个有关于消息发送和接受封装工作.大概流程是这样的,消息中间件是采用rabbitmq,为了保证消息的绝对无丢失,我们需要在发送和接受前对消息进行DB落地.在发送前我会先进行DB的插入, ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理2

    首先我们来写个类进行获取当前线程内唯一的DbContext using System; using System.Collections.Generic; using System.Data.Enti ...

  9. 【Windows编程】系列第十一篇:多文档界面框架

    前面我们所举的例子中都是单文档界面框架,也就是说这个窗口里面的客户区就是一个文档界面,可以编写程序在里面输入或者绘制文本和图形输出,但是不能有出现多个文档的情况.比如下面的UltraEdit就是一个典 ...

  10. [WPF系列]从基础起步学习系列计划

    引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...