主要用到差分法

借用岛屿情况来分析这个题。考虑p足够大的情况,所有的数都被海水淹没了,只有0个岛屿。然后,海平面逐渐下降,岛屿数量出现变化。每当一个凸峰出现,岛屿数就会多一个;每当一个凹谷出现,原本相邻的两个岛屿就被这个凹谷连在一起了,岛屿数减少一个。使用数组cnt[],cnt[i] 表示海平面下降到i时,岛屿数量的变化。
  差分法是最简洁的解题程序。数组元素d[i]中存储该元素被替换为0时,划分数变化的差分值。最大值则只需要从其前缀和(程序中实际为后缀和)中找出最大值就是所要的结果。
  程序代码中,STL算法函数unique()用来去除相邻重复的元素。
  语句“a[0] = a[n + 1] = 0;”用来设置边界值,起辅助计算作用,可以简化程序代码。

解题代码:

/* CCF202109-2 非零段划分 */
#include <bits/stdc++.h>
using namespace std;
const int N = 500000;
const int M = 10000;
int a[N + 2], d[M + 1];
int main()
{int n;scanf("%d", &n);for (int i = 1; i <= n; i++) scanf("%d", &a[i]);a[0] = a[n + 1] = 0;n = unique(a, a + n + 2) - a - 1;memset(d, 0, sizeof d);for (int i = 1; i < n; i++)if (a[i - 1] < a[i] && a[i] > a[i + 1]) d[a[i]]++;else if (a[i - 1] > a[i] && a[i] <a[i + 1]) d[a[i]]--;int ans = 0, sum = 0;   // 差分前缀和即为答案for (int i = M; i >= 1; i--)sum += d[i], ans = max(ans, sum);printf("%d\n", ans);return 0;
}

CCF202109-2 非零段划分相关推荐

  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 非零段划分(100分)【序列处理】

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

  4. 非零段划分(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 ...

  5. CSP 202109-2 非零段划分

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

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

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

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

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

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

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

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

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

最新文章

  1. LTE PUCCH F2 TX/RX汇总
  2. 代码洁癖的春天!Java 效率工具之 Lombok
  3. XMLHelper.cs
  4. live联系人导出到CSV乱码
  5. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
  6. docker centos7_centos7-yum部署docker
  7. html2canvas改成同步,html2canvas转为图片异步转同步问题(记录)
  8. Kubernetes资源创建yml语法
  9. Python数模笔记-NetworkX(3)条件最短路径
  10. SSL 1624——小萨的烦恼【最短路】【枚举】
  11. 32位jdk最大内存_Java安装之JDK下载篇
  12. 参数修饰符 params、 out、ref
  13. 内存陷阱 驯服C++中的野指针
  14. s3c2410_gpio_setpin()等系列函数
  15. 思科网络模拟器Packet Tracer教程
  16. 《Apache Spark源码剖析》
  17. 团队的远程管理_管理远程团队的4种方法
  18. ZigBee的应用场景
  19. Huawei RH2288 V3 风扇噪音大的解决方案
  20. Windows PC连接苹果LG UltraFine 4K显示器教程

热门文章

  1. 刚刚做了一个菜单导航变亮的效果,共享一下吧!
  2. 对系统组件化接口设计的一点看法
  3. 如何在VB中实现ActiveX控件的IobjectSafety接口
  4. python 企业微信群机器人_企业微信群机器人应用:使用python从网站抓取行业资讯并定时推送...
  5. unity gizmo_GitLab的新功能,沃尔玛的OneOps,《纽约时报》的Gizmo以及更多新闻
  6. 键盘一键自定义组合工具_为开发人员提供社区,通讯和自定义工具的组合
  7. 六课时 一课时45分钟表格_今年的“课时”目标是1亿学生
  8. 2020年最好用的手机是哪一款_2020年10款最好用的健康秤
  9. Vrep当中的一些好用的工具(未完)
  10. 四.因子图优化学习---对因子图优化的粗浅理解