AT_discovery_2016_qual_b ディスコ社内ツアー

题目描述

你是 DISCO presents 发现频道编程竞赛 2016 决赛中 DISCO 公司内部参观的导游。 在公司内部参观中,需要带领参观的房间有 $N$ 个,每个房间被分配了从 $1$ 到 $N$ 的编号。建筑的结构是环形的,从第 $i$ 个房间($1 \leq i \leq N-1$)可以移动到第 $i+1$ 个房间。从第 $N$ 个房间可以移动到第 $1$ 个房间。这些通道都是单向的,不能反向移动。 当你在第 $i$ 个房间时,可以选择参观该房间,或者移动到下一个房间。但是,为了避免让参与者感到厌倦,每个房间只能参观一次。你凭借多年带团经验,知道参观第 $i$ 个房间时获得的有趣程度可以用一个整数 $A_i$ 表示。 公司内部参观必须从第 $1$ 个房间出发,在参观完所有房间后,最终回到第 $1$ 个房间结束。为了让参与者更好地享受参观,你希望参观的房间的有趣程度按参观顺序排列时,是一个广义单调递增序列。在这样的限制下,进行公司内部参观时,至少需要在建筑内绕行多少圈? 这里,如果一个有 $n$ 项的数列 $a$ 满足 $a_1 \leq a_2 \leq \dots \leq a_n$,则称 $a$ 是广义单调递增序列。另外,从第 $1$ 个房间出发,依次经过所有房间各一次并回到第 $1$ 个房间,称为绕建筑一圈。

输入格式

输入通过标准输入按以下格式给出。 > $N$ > $A_1\ A_2\ \dots\ A_N$ - 第 $1$ 行给出需要参观的房间数 $N$,满足 $2 \leq N \leq 10^5$。 - 第 $2$ 行给出每个房间参观时的有趣程度 $A_i$,满足 $1 \leq A_i \leq 10^5$,以空格分隔。

输出格式

请输出在满足给定条件下进行公司内部参观所需的最少圈数。输出一行,末尾需换行。

说明/提示

### 部分分 本题设有部分分。 - 对于满足 $2 \leq N \leq 100$ 的数据集,得 $20$ 分。 - 对于满足 $1 \leq A_i \leq N$ 且 $i \neq j$ 时 $A_i \neq A_j$ 的数据集,除上述部分分外,另得 $10$ 分。 - 对于无额外限制的数据集,另得 $70$ 分。 ### 样例解释 1 - 通过如下顺序参观,可以在 $3$ 圈内完成公司内部参观。从第 $1$ 个房间出发,立即参观第 $1$ 个房间是允许的。注意,参观结束时必须在所有房间参观完毕且回到第 $1$ 个房间。 - 第 $1$ 圈参观第 $1$ 个房间和第 $4$ 个房间。 - 第 $2$ 圈参观第 $3$ 个房间。 - 第 $3$ 圈参观第 $2$ 个房间和第 $5$ 个房间。 - 本例同时满足上述部分分的第 $1$ 个和第 $2$ 个条件。 ### 样例解释 2 - 第 $1$ 圈即可参观所有房间。 - 本例同时满足上述部分分的第 $1$ 个和第 $2$ 个条件。 ### 样例解释 3 - 在最后一次参观第 $1$ 个房间后立即结束参观,可以在 $1$ 圈内完成。 - 本例同时满足上述部分分的第 $1$ 个和第 $2$ 个条件。 ### 样例解释 4 - 注意有些房间的有趣程度是重复的。 - 本例仅满足上述部分分的第 $1$ 个条件,不满足第 $2$ 个条件。 由 ChatGPT 4.1 翻译