第一次写题解 可能不好 见谅
  • 板块P1317 低洼地
  • 楼主cyt123bc
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/19 16:08
  • 上次更新2024/3/19 16:12:13
查看原帖
第一次写题解 可能不好 见谅
999548
cyt123bc楼主2024/3/19 16:08

相信我的题解可能没什么用

题目传送门

这道题的难点不在判断低洼地上,低洼地很好判断

就是两边比中间高

有问题的是有高度相同的点,但高度相同的一个平台

如果两边都比该平台高,也只算一个洼地

所以这道题的关键就是去重

再找一个数组存一下就行了

话不多说 上代码

#include <bits/stdc++.h>//万能的万能头
using namespace std;
int a[10050],b[10050];//这道题的n<=10000 所以数组要开10050
int main(){
	int n,j=0,cnt=0;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}//输入
	b[0]=a[0];
	j++;
	for(int i=1;i<n;i++){
		if(a[i]!=a[i-1]){
			b[j]=a[i];
			j++;
		}
	}//12到18行去重
	for(int i=1;i<j-1;i++){
		if(b[i]<b[i-1] && b[i]<b[i+1]){
			cnt++;
		}
	}//判断两边是否比中间高 计数
	cout<<cnt;//输出
	return 0;//华丽结束
}
2024/3/19 16:08
加载中...