CF2153A Circle of Apple Trees
题目描述
有 $n$ 棵苹果树围成一个圆圈。每棵树上都有一个苹果,第 $i$ 棵树上的苹果美丽值为 $b_i$,其中 $1 \le i \le n$。你开始站在第 1 棵树前。
在每棵树前,你可以选择吃掉该树上的苹果,或者跳过不吃。每做出选择后,你会移动到下一棵树:从第 $i$ 棵树前往第 $i+1$ 棵树($1 \le i \le n-1$),从第 $n$ 棵树则回到第 1 棵树。你会这样不断循环地经过这些树。
但你有一个特别的限制:只有当当前苹果的美丽值严格大于你上一次吃掉的苹果的美丽值时,你才能吃下去。例如,若 $b = [2, 1, 2, 3]$,你若在第 1 棵树吃了苹果(美丽值 $2$),则不能吃第 2、3 棵树的苹果,因为它们的美丽值都不大于 $2$。但你可以在第 4 棵树吃下苹果,因为 $b_4 = 3 > 2$。
注意,每遇到一个苹果时你都可以选择先跳过不吃,之后某轮循环再次遇到时再选择是否吃掉。
你的任务是,若你每一步都做出最优决策,最多能吃到多少个苹果。
输入格式
每组测试包含多个测试用例。第一行包含整数 $t$($1 \le t \le 500$),表示测试用例数。
每组测试用例第一行包含一个整数 $n$($1 \le n \le 100$),表示苹果树数量。
第二行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($1 \le b_i \le n$),表示每棵树上的苹果美丽值。
注意,所有测试用例中 $n$ 的总和没有额外限制。
输出格式
对每个测试用例,输出一个整数,表示你最多可以吃到的苹果数量。
说明/提示
在第一个样例中,所有苹果的美丽值都相同,无论你先吃哪一个,之后都无法再吃其它任何苹果。因此最多只能吃 1 个。
在第二个样例中,你可以按照如下方式吃掉 4 个苹果:
- 在第 1 棵树前跳过。
- 在第 2 棵树前跳过。
- 在第 3 棵树前跳过。
- 在第 4 棵树吃掉苹果(美丽值 $1$)。
- 在第 5 棵树吃掉苹果(美丽值 $2$)。
- 在第 1 棵树前跳过。由于第 1 棵树的美丽值($b_1=1$)不大于上次吃掉的苹果美丽值($b_5=2$),因此不能吃。
- 在第 2 棵树吃掉苹果(美丽值 $4$)。
- 在第 3 棵树吃掉苹果(美丽值 $5$)。
可以证明你无法吃到 5 个苹果。因此最多只能吃 4 个。
由 ChatGPT 5 翻译