CF1364B-B. Most socially-distanced subsequence

题意

给出一个长度为n的数字序列,让你找出它的一个子序列,长度为k,使得这个子序列的 ∣ s 1 − s 2 ∣ + ∣ s 2 − s 3 ∣ + . . . + ∣ s k − 1 − s k ∣ \vert s_1-s_2 \vert + \vert s_2-s_3 \vert +...+ \vert s_{k-1}-s_k\vert ∣s1​−s2​∣+∣s2​−s3​∣+...+∣sk−1​−sk​∣的值最大且k最小。


思路

首先肯定是将全部的数字都算上去这个,这个值会是最大的。但是题目要求k的值最小,所以要将这些数字中对于这个值的增大没有贡献的数字去掉。

那么什么样的数字对于这个值的增大没有贡献呢?假如一个有三个数字1、5、9,那么这个5对于这个值的增大就没有贡献,因为 ∣ 1 − 5 ∣ + ∣ 5 − 9 ∣ = ∣ 1 − 9 ∣ \vert 1-5 \vert + \vert 5 - 9\vert=\vert1-9\vert ∣1−5∣+∣5−9∣=∣1−9∣;同样的,若三个数字是 9 、 5 、 1 9、5、1 9、5、1,这里面的5对于数字的增大也没有贡献。

综上,我们就是要把所有的比左边大比右边小的数字和比左边小比右边大的数字去掉,最终得到的序列就是答案。


AC代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>std::vector<int>a;void solve() {int n, t;a.clear();scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &t);a.push_back(t);}for (int i = 1; i < a.size() - 1; i++) {if (a[i] > a[i - 1] && a[i] < a[i + 1]) {a.erase(a.begin() + i);i--;} else if (a[i] < a[i - 1] && a[i] > a[i + 1]) {a.erase(a.begin() + i);i--;}}printf("%d\n", (int)a.size());for (int i = 0; i < a.size(); i++) {printf("%d%c", a[i], " \n"[i == a.size() - 1]);}
}int main() {int T;scanf("%d", &T);while (T--) {solve();}return 0;
}

CF1364B-B. Most socially-distanced sub相关推荐

  1. opencv图像深度-1_OpenCV空间AI竞赛之旅(第1部分-初始设置+深度)

    opencv图像深度-1 OpenCV空间AI竞赛 (OpenCV Spatial AI Competition) Recently, the people at OpenCV launched th ...

  2. 苹果iphone 12它只是一个电话

    Electric. That's the atmosphere at an iPhone launch. Seated in one of Apple's exquisite presentation ...

  3. Python干货项目:【新闻急先锋】新闻API获取谷歌头条新闻

    新闻API是用于搜索和检索来自整个Web的实时新闻文章,可以根据某些标准检索新闻. 使用它,可以获取任何新闻网站上运行的顶级新闻,也可以搜索特定主题(或关键字)的顶级新闻. 假设要搜索的主题(关键字) ...

  4. 实施一个光明与黑暗的主题,以持久的React

    介绍(Introduction) So, you've come to that point in the creation of your website where you want to do ...

  5. 两个词之间的依存语义关系_相互依存的网络之间的级联中断-2003年停电的5个教训

    两个词之间的依存语义关系 In 2003, what should have been a local power outage resulted in 50 million people losin ...

  6. 语料库建立_通过挖掘covid 19科学语料库建立对病毒的理解

    语料库建立 At the time I publish this, we are entering the 9th month since COVID-19 froze the world. Sinc ...

  7. 托管和非托管_技术和托管新闻综述

    托管和非托管 Welcome to our latest round-up of news from the technology and hosting world. Here's what we' ...

  8. 蜜蜂编程_没有蜜蜂就无法拼写“可预防”

    蜜蜂编程 The New York Times Spelling Bee is a daily online puzzle that presents a set of seven letters a ...

  9. E.03.31 Shadowed by Pandemic, Olympic Torch Relay Begins in Japan

    2021.03.31 文章目录 [课程导读] [英文原文] [外刊原文] [课程导读] 上周,东京奥运会火炬传递仪式在福岛县正式开启.日本政府将这届因新冠疫情推迟了一年的奥运会视为重建和复兴的标志,认 ...

  10. 自动驾驶轨迹预测论文阅读(三)Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    [略读]GUPTA A, JOHNSON J, FEI-FEI L, et al., 2018. Social GAN: Socially Acceptable Trajectories with G ...

最新文章

  1. java反编译工具jadclipse_java反编译工具jad及jadclipse
  2. 基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型
  3. iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
  4. C# aspx页面动态加载ascx用户控件 及 利用反射调用其内方法
  5. python串口编程_python串口通信
  6. linux中oracle切sys,Linux环境oracle数据库重置sys用户密码
  7. 优雅的嵌套滑动解决方式-NestedScroll
  8. OpenCV 20 年,首款开源软硬一体的 OAK 套件来了!
  9. Guacamole-HTML5无客户端远程桌面
  10. waiting for lock on working directory of:tortoiseHg
  11. 微信小程序背景图片如何设置--如何用background-image Base64设置背景
  12. 个人笔记使用(wolai,OneNote)
  13. 逐条讲解python_名校教授推荐:Python458集大型视频,从正确的方向出发学习
  14. java实现图片平铺倾斜水印效果--转载
  15. [学位]燕山大学中文学术期刊目录(2020修订版)
  16. Python 使用 matplotlib绘制3D图形
  17. VS2019 - 动态库的编写和调用
  18. 利用C#进行AutoCAD的二次开发(转)
  19. 云服务器vCPU与物理CPU关系
  20. 上海网管联盟2003系统反馈

热门文章

  1. C++ Word Processor | USACO 2020 January Contest
  2. jdk32位连不上oracle64位,64位 jdk 读取32位dll
  3. mybase和mysql_MyBase和MyClass分别是什么意思?
  4. php读书笔记,深入理解PHP ed3 读书笔记
  5. SAP WM初阶之事务代码LQ02
  6. C# 文本框输入提示
  7. strcat strcpy的实现
  8. linux企业级运维----->kubernetes(3)pod资源清单
  9. nova3root版,nova3最新版本
  10. 《重构HTML:改善Web应用的设计(修订版)》——第1章 重构1.1 为何重构