首页 > 其他分享 >Array Collapse

Array Collapse

时间:2024-02-25 10:45:52浏览次数:21  
标签:下标 Collapse 可以 保留 数都 Array

这篇题解可以看看(洛谷第一篇)

讲下我的做法

首先发现对于最终的序列,任意两个数(设为\(x\)和\(y\))之间一定不会存在一个比两个数都小的数被删除,不然的话,我们设\(x\)和\(y\)之间最小的数为\(p\),那么某个区间删除\(p\)的时候一定会同时把\(x\)或\(y\)的某一个数删除

所以设\(f[i]\)表示前\(i\)个数,保留第\(i\)个数的所有方案,\(p\)为小于\(a_i\)的下标最大的数的下标

那么显然,\([p+1,i-1]\)中每一个数都可以保留

\(p\)当然也可以保留,但还有没有可以保留的数?

稍微分析一下,就可以知道,再找一下小于\(a_p\)的下标最大的数的下标\(q\),那么\(q\)也可以保留;再找一下小于\(a_q\)的下标最大的数的下标\(w\),那么\(w\)也可以保留...以此类推

我用了动态st+分治寻找\(p\)但实际上用单调栈就好了

标签:下标,Collapse,可以,保留,数都,Array
From: https://www.cnblogs.com/dingxingdi/p/18032126

相关文章

  • Watering an Array
    我们发现每次操作二之后序列都会变成全\(0\),所以全\(0\)序列是一个非常特殊的序列,我们考虑从他开始的最大收益是多少由于我们接下来只能实施操作一,所以我们可以发现,任意一个时刻我们都不可能有两个位置满足\(a_i=i\),可以反证,假设\(a_i=i,a_j=j,j>i\),那么对于\(j\)来说,肯定被加了\(......
  • 「CF1575L」 Longest Array Deconstruction
    双倍经验如果本文出锅,请评论或私信提醒这个蒟蒻修改!题意题目给的很清楚了,不多说。分析看到题目,因为在dp题单里,所以一眼是个dp,我们先想朴素算法,可以发现,如果设\(f_{i,j}\)表示前\(i\)个数中删掉\(j\)个所能得到的最大结果,若\(a_i=i\),则\(f_{i,j}=f_{i-1,j}+1\);否则,可......
  • [Rust] Create an array of numbers by using Range
    fnmain(){leta=0..100;ifa.len()>=100{println!("Wow,that'sabigarray!");}else{println!("Meh,Ieatarrayslikethatforbreakfast.");panic!("Arraynotbigenough,more......
  • Watering an Array
    原题链接题解由于执行收获操作后所有数组清零,清零后的数组最快捷的加分方法是加一收获一,所以就是第一次加多少次然后第一次加完最多收获\(n\)分,相当于清零后执行总共\(2n\)次所以只需要判断第一次加&[0,2n-1]&次加后收获时能收获多少就行了code,注意细节#include<bits/......
  • CF1398C Good Subarrays(写给我们萌新团体)
    GoodSubarrays传送门:GoodSubarrays-洛谷|计算机科学教育新生态(luogu.com.cn)思路暴力!!!!!一如既往的暴力!!!复杂度O(n^2)数据n到1e5TLE必定TLE我们可以用一个桶来优化实质上其实还是高中所学的排列组合思想第一步:当然是前缀和了,这边讲给新手写一下,有点冗杂,是高手直接......
  • Python数据类型中bytes 与 bytearray
    在Python中,我们可以使用bytes和bytearray两种数据类型来处理二进制数据。bytes是一个不可变的序列类型,而bytearray是一个可变的序列类型。本文将介绍如何使用Python来创建、操作和转换bytes和bytearray。bytes:可以看作是一组二进制数值(0-255)的str序列bytearray:可以看......
  • av_image_fill_arrays
    av_image_fill_arrays是FFmpeg中用于填充图像数据指针数组的函数之一。在音视频处理领域,正确使用av_image_fill_arrays函数可以帮助我们有效地处理图像数据。av_image_fill_arrays函数原型/***Setupthedatapointersandlinesizesbasedonthespecifiedimage*parame......
  • av_samples_fill_arrays
    av_samples_fill_arrays是FFmpeg中一个非常重要的函数,用于填充音频数据的指针数组。在音视频处理中,经常需要处理音频数据,而av_samples_fill_arrays可以正确地组织音频数据,以便后续处理和编解码。av_samples_fill_arrays函数的原型:/***Fillplanedatapointersandlinesize......
  • JS 中的二进制 - Blob 与 ArrayBuffer
    零、参考资料《图解+实战》File、Blob、TypedArray、DataViewJavaScript也有操作二进制的一天:聊ArrayBuffer和Blob聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer一、定义宏观:Blob-表示一个不可变、原始数据的类文件对象,可读不可写微观:ArrayBuffer-表示通用的原始......
  • [Rust] Arrays in Rust
    InthislessonwetakealookatArraysandthedifferentwaysofcreatingthem.ArraysinRustarecollectionsofvaluesofthesametypethatcannotchangeinsize.Inotherwords,thenumberoffields(orelements)hastobeknownatcompiletime.#[al......