首页 > 其他分享 >Watering an Array

Watering an Array

时间:2024-02-24 15:56:36浏览次数:19  
标签:lfloor frac sum Watering rfloor 操作 Array 我们

我们发现每次操作二之后序列都会变成全\(0\),所以全\(0\)序列是一个非常特殊的序列,我们考虑从他开始的最大收益是多少

由于我们接下来只能实施操作一,所以我们可以发现,任意一个时刻我们都不可能有两个位置满足\(a_i=i\),可以反证,假设\(a_i=i,a_j=j,j>i\),那么对于\(j\)来说,肯定被加了\(j\)次,而这\(j\)次一定也会加到\(i\)上面,所以\(a_i=j>i\),矛盾

所以我们的最大收益就是\(\lfloor \frac{d}{2}\rfloor\),即一次操作一后紧跟操作二

那么我们就有一个初始的暴力算法了,就是枚举我们最开始会进行多少次操作一后进行第一次操作二

但是这样太慢了,我们一定会有一个比\(d\)更小的上界,当达到这个上界的时候,在进行操作一一定不会更优,因为一定会有一种比上界低的操作比其更优越

我们考虑答案的组成,为\(sum+\lfloor \frac{d-i}{2}\rfloor\),其中\(sum\)是第一次操作二的贡献

所以我们只用考虑前\(2n\)天,因为如果进行更多的操作一,\(sum\)也不会超过\(n\),而我完全可以通过后面的\(\lfloor \frac{d-i}{2}\rfloor\)来贡献了

标签:lfloor,frac,sum,Watering,rfloor,操作,Array,我们
From: https://www.cnblogs.com/dingxingdi/p/18031160

相关文章

  • 「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......
  • Java集合篇之深入解析ArrayList,这六问你答的上来吗?
    写在开头开年第一篇,先祝各位新的一年身体健康,学业有成,事业有成哈,春节期间就是咔咔乱吃,咔咔乱玩,把学习都抛一边子去了,已经9天没有学习了,深深的懊悔,从今天开始,2024年的学习正式开启,一起给我猛冲!!!书接上回,我们开启了Java集合部分的学习,今天我们就来看一下List,其中它的核心有两个,一个......