CF1364B
题目简化和分析:
这题没啥好说的,找其绝对值最大,也就是找到每一个山峰山谷。
这样不仅满足选择的个数最少,并且值最大。
正确性证明:
- 若 \(a\le b\le c\)
- \(|a-b|+|b-c|=(b-a)+(c-b)=b-a+c-b=c-a=|a-c|\)
- 若 \(a\ge b\ge c\)
- \(|a-b|+|b-c|=(a-b)+(b-c)=a-b+b-c=a-c=|a-c|\)
注意:最后一个特判一下。
Solution:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const int N=1e5+50;
const int M=1e5+50;
const int Mod=1e9+7;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int t,n;
int a[N];
int main()
{
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
}
queue<int>q;
int f=-1,ans=0;
for(int i=1;i<n;++i){
int k=(a[i]>a[i+1]);
if(k!=f){
q.push(a[i]);
++ans;
f=k;
}
}
q.push(a[n]);
++ans;
printf("%d\n",ans);
while(!q.empty()){
printf("%d ",q.front());
q.pop();
}
printf("\n");
}
return 0;
}
随机推荐
- Java Date与时间戳的转换问题
Java中String与Date格式之间的转换 - NemoWang - 博客园 (cnblogs.com) 主要是String类型的时间,需要使用DateFormat来进行设置转换的格式,调用fmt ...
- 获得 markdown 无序列表格式的文件目录树
tree 命令可以获得文件目录结构,但是放在文档中时,我想用 markdown 无序列表的形式,在编辑器内还可以折叠. 完整解决方案:在 ~/.oh-my-zsh/custom 下添加下述自定义函数( ...
- ENVI实现QUAC、简化黑暗像元、FLAASH方法的遥感影像大气校正
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以预处理与多种不同大气校正方法的操作. 目录 1 数据导入与辐射定标 2 波段合成 3 编辑头文件 4 转换文件格式 5 QUAC快速大气校 ...
- Centos 7安装JDK1.8
# 安装 yum install -y java-1.8.0-openjdk* # 添加环境变量 vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java ...
- Day-4 路由匹配源码
1. 请求来了会走WSGIHandler的call方法 convert_exception_to_response也是进行封装 真的handler是从下图定义 resolver = URLResolv ...
- Linux切换Root权限配置和无法切换排查
1.wheel组 普通用户禁止su切换root 在默认的情况下,普通用户通过su可以切换到root用户下,为了加强系统安全性,使用Linux的特殊用户组wheel来实现,只有用户加入到wheel组当中 ...
- docker笔记-安装、操作和Registry
注意事项 强烈建议docker宿主机关闭firewalld,改用iptables 1 docker安装 1.1 离线安装 下载 Docker 二进制文件(https://download.docker ...
- 仪酷LabVIEW AI视觉工具包及开放神经网络交互工具包常见问题解答
前言 哈喽,各位朋友,好久不见~ 之前给大家分享了基于LabVIEW开发的AI视觉工具包及开放神经网络交互工具包,不少朋友私信说在安装和使用过程中会遇到一些问题,今天我们就集中回复一下大家问到最多的问 ...
- React: 动态添加样式
问题背景 在软件开发过程中,经常会出现动态添加style或className,比如:同一个表格组件在A处调用,需要固定前四列数据, B处调用则不用,那这时候,动态添加元素就派上了用场. 解决方案 如下 ...
- mysql 命令安装
1. mysql 下载安装好压缩文件,下面我们进入正题,少废话. 09:39:112023-08-05 先到 mysql 官方网站下载:https://dev.mysql.com/downloa ...