博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2089&2090: [Poi2010]Monotonicity
阅读量:5115 次
发布时间:2019-06-13

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

  双倍经验一眼题。。。

  f[i][1/2]表示以i结尾,当前符号应该是</>的最长上升子序列, 用BIT优化转移就好

  =的话就不用说了吧= =

#include
#include
#include
#include
#include
using namespace std;const int maxn=500010, inf=1e9+1;int n, m, N, ans, ans1, ans2, ans3;int tree[4][maxn], a[maxn], ty[maxn], mx[maxn], b[maxn];char s[maxn];void read(int &k){ int f=1; k=0; char c=getchar(); while(c<'0' || c>'9') c=='-' && (f=-1), c=getchar(); while(c<='9' && c>='0') k=k*10+c-'0', c=getchar(); k*=f;}inline int max(int a, int b){
return a>b?a:b;}inline void add(int x, int delta, int ty){
for(;x<=N;x+=x&-x) tree[ty][x]=max(tree[ty][x], delta);}inline int query(int x, int ty){
int sum=0; for(;x;x-=x&-x) sum=max(tree[ty][x], sum); return sum;}inline void update(int x, int delta){ if(ty[(delta-1)%m+1]==1) add(N-a[x]+1, delta, 1); else if(ty[(delta-1)%m+1]==2) add(a[x], delta, 2); else mx[a[x]]=max(mx[a[x]], delta);}int main(){ read(n); read(m); for(int i=1;i<=n;i++) read(a[i]), b[i]=a[i]; N=n; sort(b+1, b+1+n); N=unique(b+1, b+1+n)-b-1; for(int i=1;i<=n;i++) a[i]=lower_bound(b+1, b+1+N, a[i])-b; for(int i=1;i<=m;i++) { scanf("%s", s+1); if(s[1]=='>') ty[(i-1)%m+1]=1; else if(s[1]=='<') ty[(i-1)%m+1]=2; else ty[(i-1)%m+1]=3; } for(int i=1;i<=n;i++) { int ans1=query(N-a[i], 1)+1, ans2=query(a[i]-1, 2)+1, ans3=mx[a[i]]+1; ans=max(ans, max(ans1, max(ans2, ans3))); update(i, ans1); update(i, ans2); update(i, ans3); } printf("%d\n", ans);}
View Code

 

转载于:https://www.cnblogs.com/Sakits/p/7919754.html

你可能感兴趣的文章
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>
Swift3.0服务端开发(三) Mustache页面模板与日志记录
查看>>
【转】 FPGA设计的四种常用思想与技巧
查看>>
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>