#L3699. 「USACO 2022 US Open Platinum」Up Down Subsequence

    ID: 4291 传统题 1000ms 256MiB 尝试: 5 已通过: 1 难度: 10 上传者: 标签>动态规划LIS单调性DP数据结构线段树树状数组其他二分查找离散化思维贪心难度NOI/NOI+

「USACO 2022 US Open Platinum」Up Down Subsequence

题目描述
题目来自 USACO 2022 US Open Contest, Platinum Problem 3. Up Down Subsequence

Farmer John 的 NN 头奶牛(2N31052 \leq N \leq 3\cdot 10^5),编号为 1N1 \ldots N,排列成 1N1\ldots N 的一个排列 p1,p2,,pNp_1,p_2,\ldots,p_N。另外给定一个长为 N1N-1 的字符串,由字母 UD 组成。请求出最大的 KN1K\le N-1,使得存在 pp 的一个子序列 a0,a1,,aKa_0,a_1,\ldots,a_{K},满足对于所有 1jK1\le j\le K,当字符串中第 jj 个字母是 Uaj1<aja_{j - 1} < a_j,当字符串中的第 jj 个字母是 Daj1>aja_{j - 1} > a_j


输入格式
输入的第一行包含 NN

第二行包含 p1,p2,,pNp_1,p_2,\ldots,p_N

最后一行包含给定的字符串。


输出格式
输出 KK 的最大可能值。


样例 1
输入:

5
1 5 3 4 2
UDUD

输出:

4

我们可以选择 [a0,a1,a2,a3,a4]=[p1,p2,p3,p4,p5][a_0,a_1,a_2,a_3,a_4]=[p_1,p_2,p_3,p_4,p_5];整个排列与给定的字符串相一致。


样例 2
输入:

5
1 5 3 4 2
UUDD

输出:

3

我们可以选择 [a0,a1,a2,a3]=[p1,p3,p4,p5][a_0,a_1,a_2,a_3]=[p_1,p_3,p_4,p_5]


数据范围与提示

  • 测试点 343\sim 4 满足 N500N\le 500
  • 测试点 585\sim 8 满足 N5000N\le 5000
  • 测试点 9129\sim 12 中,字符串中的 U 均在 D 之前。
  • 测试点 132213\sim 22 没有额外限制。