Yurchiu's Blog

[Idea] 试卷排序

2021 级信息社团 2022-09-10, 18:02:23 564 隐藏左右两栏 展示左右两栏

试卷排序

题目背景

期末考试临近了,Yurchiu 和 zzw 收到了来自老师的试卷关爱,但是试卷太多了,足足有 10610^{6} 张,他们已经无法排好试卷了。

所以在 zzy 的建议下,他们把这个问题交给了你。

题目描述

给定一个页码总数为 nn 的试卷堆,现要求你将它进行排序,你有如下两种操作:

  1. 选定一张试卷,将之置于试卷堆顶部;

  2. 选定一张试卷,将之置于试卷堆底部。

但由于 Yurchiu 和 zzw 的能力不同,所以你需要分别处理。

Yurchiu 希望能将试卷页码从小到大排列,但她只能实行操作 11 ;

zzw 的希望与 Yurchiu 相同,但他可以进行操作 11 和操作 22

输入格式

第一行一个整数 nn

第二行一个字符串 ss,表示你将为谁进行试卷排序。

第三行共 nn 个整数,分别为 a1,a2,,ana_1,a_2,\cdots,a_n 表示试卷页码的当前状态。

输出格式

输出共一行一个整数,为最小的操作次数。

样例 #1

样例输入 #1

5
yz
5 1 2 4 3

样例输出 #1

4

样例 #2

样例输入 #2

5
zzw
5 1 2 4 3

样例输出 #2

2

提示

【数据范围】

对所有测试点保证 1n1061 \leq n \leq 10^{6}1ain1 \leq a_i \leq n

测试点nnss
121 \sim 2=10=10=yz=\tt{yz}
343 \sim 4=103=10^{3}=yz=\tt{yz}
585 \sim 8=106=10^{6}=yz=\tt{yz}
9109 \sim 10=10=10=zzw=\tt{zzw}
111211 \sim 12=103=10^{3}=zzw=\tt{zzw}
132013 \sim 20=106=10^{6}=zzw=\tt{zzw}

【本题来源】

  • Idea & 题面:zzw;
  • 数据:yz;
  • 标程:njy;
  • 验题:lhz;
  • 题解:zzy。

题解

容易发现,Yurchiu 操作即求含 nn 的最长连续上升子序列,zzw 操作即求最长连续上升子序列。

连续上升子序列指一个原序列的子序列 a1,a2,,apa_1,a_2,\dots,a_p,保证 i[1,p)\forall i\in[1,p),有 ai=ai+11a_i=a_{i+1}-1

O(n)O(n) 求之即可。





本文作者:2021 级信息社团

本文链接:https://yz-hs.github.io/63f21f74d510/

版权声明:本博客中所有原创文章除特别声明外,均允许规范转载,转载请注明出处。所有非原创文章,按照原作者要求转载。


By Yurchiu.
其他物件杂物收纳
Hitokoto

Yurchiu 说,除了她以外的人都很强!嘤嘤嘤~~
博客信息
文章数目
158
最近更新
08-26
本站字数
350.6k
文章目录