题解 AT_code_festival_final_e 常ならずグラフ

思路

我们直接从开始暴力枚举,每三个算一次。

如果这三个不构成波浪,那么我们就需要将答案减一,即剔除掉这个数。这个时候,我们就需要把这前一个数给赋值到这个数,这样的话就可以与剔除的前一个数进行比较。

AC 代码

(人生苦短,我用 Python)

1
2
3
4
5
6
7
8
9
10
11
n = int(input())
a = list(map(int,input().split(" ")))
ans = n
for i in range(2,n):
if ((a[i-1]>a[i] and a[i-1]>a[i-2]) or (a[i-1]<a[i] and a[i-1]<a[i-2]))==False:
ans -= 1
a[i-1]=a[i-2]
if ans<3:
print("0")
else:
print(ans)

题解 AT_code_festival_final_e 常ならずグラフ
https://sunnyli.咕咕咕.eu.org/solution-at-code-festival-final-e/
作者
SunnyLi
发布于
2023年8月3日
许可协议