题目链接
这道题可以将题目模拟为海水与岛屿的问题;
p为海水深度,假设数组中一个数比其左边与右边的数都大,那么它就是一个峰,反之则是一个谷。
如果p是10001,那么所有地区都在海平面以下,将p慢慢减小会发现逐渐由有山峰露出,露出的峰数目最多的时候即为非零段数目最多的时候。
特别注意: 如果出现了类似于1 2 2 1这种相连的情况,一定要将相连续的2变为1 个,即变为1 2 1,如果不变化,程序会认为此处没有峰,但事实上1 2 2 1在2 2 处形成的平台就是峰。

#include <stdio.h>
#include <string.h>
int main()
{int n;scanf("%d",&n);int i,b[n+5],c[10005]={0},a[n+5];//c用来记录海水到达i高度时露出的山峰数memset(a,0,sizeof(a));for(i=1;i<=n;i++){scanf("%d",&b[i]);}b[0]=0;b[n+1]=0;int j=1;for(i=1;i<=n;i++){if(b[i]!=b[i+1]) a[j++]=b[i];if(b[i]==b[i+1]){while(b[i]==b[i+1]) {i++;}a[j++]=b[i];i++;}}a[0]=0;a[n+1]=0;for(i=1;i<=n;i++){if(a[i]>a[i-1]&&a[i]>a[i+1])//如果此处为峰,那么当p比a[i]小的时候,山峰会露出c[a[i]]++;//p为a[i]时的非零段数目++else if(a[i]<a[i-1]&&a[i]<a[i+1])//此处是谷,当p比a[i]小的时候也不会露出c[a[i]]--;//计数非零段--;}int max=0,sum=0;for(i=10000;i>=0;i--){sum=sum+c[i];//海水慢慢下降,将逐渐露出的山峰数目和相加;if(sum>max) max=sum;}printf("%d",max);return 0;
}

CCFCSP非零段划分相关推荐

  1. CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版

    CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版 一.题目: 二.Java70分答案 import java.util.ArrayList; import java.uti ...

  2. csp真题 202109-2非零段划分C++代码(100分)

    试题编号: 202109-2 试题名称: 非零段划分 时间限制: 1.0s 内存限制: 512.0MB 样例1输入 11 3 1 2 0 0 2 0 4 5 0 2 样例1输出 5 样例1解释 p=2 ...

  3. CCF202109-2 非零段划分

    主要用到差分法 借用岛屿情况来分析这个题.考虑p足够大的情况,所有的数都被海水淹没了,只有0个岛屿.然后,海平面逐渐下降,岛屿数量出现变化.每当一个凸峰出现,岛屿数就会多一个:每当一个凹谷出现,原本相 ...

  4. CCF202109-2 非零段划分(100分)【序列处理】

    试题编号: 202109-2 试题名称: 非零段划分 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 题目描述 A1,A2,-,An是一个由 n 个自然数(非负整数)组成的数组.我们称其 ...

  5. 非零段划分(CSP202109-2)

    非零段划分 题目链接 题目描述: 输入格式: 输出格式: 样例1: 输入: 11 3 1 2 0 0 2 0 4 5 0 2 输出: 5 样例2: 输入: 14 5 1 20 10 10 10 10 ...

  6. CSP 202109-2 非零段划分

    题目链接:非零段划分 题目描述 A1,A2,⋯,An 是一个由 n 个自然数(非负整数)组成的数组.我们称其中 Ai,⋯,Aj 是一个非零段,当且仅当以下条件同时满足: 1≤i≤j≤n: 对于任意的整 ...

  7. 非零基础自学计算机操作系统 第1章 操作系统概述 习题一

    非零基础自学计算机操作系统 第1章 操作系统概述 习题一 [1]什么是操作系统?操作系统有哪些特性? 答:操作系统是管理计算机硬件与软件资源的计算机程序,它的主要特性有并发性.易用性.稳定性和异步性. ...

  8. 非零基础自学计算机操作系统 第1章 操作系统概述 1.4 操作系统的分类 1.4.1 多道批处理操作系统 1.4.2 分时操作系统

    非零基础自学计算机操作系统 文章目录 非零基础自学计算机操作系统 第1章 操作系统概述 1.4 操作系统的分类 1.4.1 多道批处理操作系统 1.4.2 分时操作系统 第1章 操作系统概述 1.4 ...

  9. Keil MDK下如何设置非零初始化变量(转)

    源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...

  10. 网络故障解决方案之非标准子网划分【网管员必懂】

    网络故障解决方案之非标准子网划分 一个组织申请了一段IP地址后,可能需要对IP地址进行进一步的子网划分.例如,某规模较大的公司申请了一个B类IP地址166.133.0.0.如果采用标准子网掩码255. ...

最新文章

  1. spacemacs各种问题修复方法
  2. 协议森林08 不放弃 (TCP协议与流通信)
  3. arm架构linux运行docker失败,armdocker:在x86上模拟运行arm容器
  4. 找出消费者在使用你的产品的时候,什么时刻觉得“值了”
  5. 为什么耗资数亿的12306一直都非常难用?
  6. BackToTop.js 为你的网站添加“回到顶部”按钮
  7. Linux宝库上线,有木有get到你?
  8. 解析库的基本使用(BeautifulSoup、Xpath(重点)、PyQuery)
  9. Blender全新毛发工具演示露出,预计9月份正式更新
  10. 企业大数据规划建设方案(PPT)
  11. 路由器Padavan固件安装贴吧云签到
  12. 自定义IP在PCIE中使用
  13. 机器学习项目中不可忽视的一个密辛 - 大数定理、中心极限定理
  14. mysql redo查看_mysql redo
  15. mysql查询数据1168_mysql merge报错ERROR 1168
  16. 数学与应用数学考研计算机方向,数学专业考研方向解析:应用数学
  17. InDesign: Interactive PDFs InDesign交互式PDF文件教程 Lynda课程中文字幕
  18. 【54期】Java序列化三连问,是什么?为什么需要?如何实现?
  19. 个人晋升演讲ppt_关于升职演讲ppt演讲范文及制作要求
  20. cnn程序流程图_C# VISIO 画流程图

热门文章

  1. Screenpresso-截图工具绿色版
  2. Linux后台运行程序
  3. 微信小程序实现扫码登录网站
  4. 使用整数除法获得商c语言,C语言练习题答案
  5. [Unity] 利用Culling Group实现LOD和剔除逻辑
  6. pdfFactory Pro 不能被安装(AddPrinterDriver 失败)...找不到指定的模块
  7. MemoryBarrier方法
  8. Handler消息机制详解,另对于MessageQueue阻塞线程的详解
  9. web前端开发面试题(七)
  10. Windows and CentOS IPv4转IPv6隧道方法