logo AlgoBeat OnlineJudge
登录 注册

题解:P16751 [GKS 2020 #B] Bike Tour

作者: charly666 作弊者  ·  发布于 2026-07-01 17:24:38  ·  最后修改于 2026-07-01 17:27:18
已通过
审核员:Lemon_zqp 弱弱 · 2026-07-01 17:27:18

一、思路

在每个检查点中,我们只要判断:

  1. 它不是第 个或第 个点;
  2. 该点的比它相邻的点

如果都满足的话,那么该检查点就是山峰

二、参考代码

AC 记录

#include<bits/stdc++.h>
using namespace std;
int t;
int main(){
    cin>>t;
    for(int Case=1;Case<=t;Case++){
        int n,a[105],ans=0;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        for(int i=1;i<=n;i++){
            if(i==1||i==n)continue;//点在首尾,那么就不是山峰
            if(a[i]>a[i-1]&&a[i]>a[i+1])ans++;//点比两边的高,就是山峰,将答案加 1
        }
        cout<<"Case #"<<Case<<": "<<ans<<"\n";
    }
    return 0;
}

暂无评论

登录 后即可评论。