双倍经验一眼题。。。

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

  =的话就不用说了吧= =

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
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

bzoj20892090: [Poi2010]Monotonicity相关推荐

  1. R语言构建xgboost模型:指定特征交互方式、单调性约束的特征、获取模型中的最终特征交互形式(interaction and monotonicity constraints)

    R语言构建xgboost模型:指定特征交互方式.单调性约束的特征.获取模型中的最终特征交互形式(interaction and monotonicity constraints) 目录

  2. bzoj2091: [Poi2010]The Minima Game DP

    2091: [Poi2010]The Minima Game DP 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2091 思路 这类问题好迷 ...

  3. 2021牛客多校7 - xay loves monotonicity(线段树区间合并)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数字序列 aaa 和 010101 序列 bbb,需要执行 mmm 次操作,每次操作分为如下三种类型: 1 x y:修改 a[x]=ya[x]= ...

  4. P3511 [POI2010]MOS-Bridges(网络流/欧拉回路)

    P3511 [POI2010]MOS-Bridges 给出一个图,边正着走和反着走的边权不同,求解最大边权最小的欧拉回路,输出方案. 首先看到最大边权最小我们就可以想到二分答案,然后现在在剩余的图上我 ...

  5. 2021牛客暑期多校训练营7 xay loves monotonicity 线段树区间合并

    传送门 文章目录 题意: 思路: 题意: 题面挺绕口的,还是看原题比较好. 大概的意思就是让你从给定的区间中选择一个以左端点为起点的一个上升子序列,让后将这些下标存下来,在bbb中将这些位置拿出来后, ...

  6. 2021牛客暑期多校训练营7 B-xay loves monotonicity(线段树+不降子序列)

    P4198 楼房重建 线段树维护以某点为开头的最长不下降子序列 使用下面calc函数能够计算线段树u维护的区间中,以x为开头最长不下降子序列的个数. calc需要维护区间最值. template< ...

  7. 【bzoj2084】[Poi2010]Antisymmetry

    2084: [Poi2010]Antisymmetry Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 1205  Solved: 756 [Subm ...

  8. 2091: [Poi2010]The Minima Game

    2091: [Poi2010]The Minima Game 链接 分析: 首先排序后,一定是选的连续的一段. f[i]表示前i个位置,先手-后手的最大得分. 那么考虑第i个位置是否选,如果选,先手选 ...

  9. bzoj2096[Poi2010]Pilots*

    bzoj2096[Poi2010]Pilots 题意: 给一个序列和一个最大值,要求找一个最长连续子串,使里面任意两个数相差不超过这个最大值.序列大小≤3000000 题解: 用两个单调队列,分别维护 ...

最新文章

  1. UNIX环境高级编程笔记之进程控制
  2. 火星浏览器_「超详细Filecoin矿工手册」IPFS的应用以及意义 | 火星号精选
  3. Googlequot;员工quot;曝内幕:Google员工的17个秘密
  4. 5130S-52S-PWR-HI 堆叠配置
  5. (转)函数指针,指针函数,指向函数的指针,返回指针的函数
  6. 【Paper】2021_Observer-Based Controllers for Incrementally Quadratic Nonlinear Systems With Disturbanc
  7. mongodb学习篇
  8. 我国大陆居民身份证Java验证
  9. LwIP 之一 源码目录文件详解及移植说明
  10. C#数据同步中基本步骤和用到的相关函数
  11. DPDK+Pktgen 高速发包测试
  12. Spring基础面试题-同步更新
  13. php递归实现冒泡排序,排序算法之PHP版快速排序、冒泡排序
  14. java多个类调用,java起用多进程调用某个类(是class文件)
  15. android 键盘回车按钮事件,android 监听软键盘 回车键
  16. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_04.入门程序之搭建开发环境
  17. Linux安装gcc编译环境出错
  18. ai的预览模式切换_ai预览快捷键是什么,Adobe Illustrator预览快捷键是什么?
  19. 软件测试需要学什么?全网最全软件测试必备7大技能详解,摇身一变资深测试
  20. [笔记] PPT幻灯片也RIA——PPT实现倒计时功能

热门文章

  1. 20秋学期计算机应用基础在线作业3,电子科大16秋《计算机应用基础》在线作业3...
  2. ubuntu中显示本机的gpu_Ubuntu下实时查看Nvidia显卡显存占用情况和GPU温度
  3. 数据库迁移Flyway
  4. Docker部署nginx并修改配置文件
  5. Python ImportError: No module named Image
  6. centos 6.8 挂载NTFS移动硬盘
  7. 任务调度系统 xxl-job,V1.4.1 新特性速览
  8. prettyping.sh: ping 之美
  9. Linux TCP 性能調優筆記
  10. IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法...