ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Extreme Extension 思维,dp

2021-11-03 21:32:51  阅读:220  来源: 互联网

标签:Extension 17 ai 元素 dpi 数组 dp Extreme


在这里插入图片描述
在这里插入图片描述
题意:

  • 给一数组a,可对其中 a i a_i ai​进行如下操作:将 a i a_i ai​拆成两数之和,然后代替 a i a_i ai​加入数组中。设一个数组的 e x t r e m e extreme extreme v a l u e value value 指的是:使得数组单调不下降的最小操作次数。据此,求a数组的所有子数组的 e x t r e m e extreme extreme v a l u e value value 之和

思路:

  • 先考虑一个数组,显然,将末尾元素拆分是没有意义的,且会使答案增大。而对于中间元素,例如 . . . [ 17 ] , 5 , 10 , 23 , . . . ... [17], 5, 10, 23, ... ...[17],5,10,23,... ,如果它违反了单调不下降的规则,就必须进行拆分,可以有多种拆法,但使得其中最小元素尽可能大,是最优的拆法。例如,拆成 ( 4 , 4 , 4 , 5 ) (4, 4, 4, 5) (4,4,4,5)比 ( 3 , 3 , 3 , 3 , 5 ) (3, 3, 3, 3, 5) (3,3,3,3,5)更好,因为这可能减少前面需要的操作数量,因此,相当于让拆分成的元素尽可能接近,且数量尽可能少,又要让其中最大的小于 a i + 1 a_{i+1} ai+1​,那么,对于当前的数 a i a_i ai​和下一个数 a i + 1 < a i a_{i+1}<a_i ai+1​<ai​,我们应当拆分,例如这里17应当分为 ⌈ 17 / 5 ⌉ = 4 \lceil 17/5 \rceil = 4 ⌈17/5⌉=4个数,所以最小数是 ⌊ 17 / 4 ⌋ = 4 \lfloor 17/4 \rfloor = 4 ⌊17/4⌋=4。显然,如果 a i a_i ai​比 a i + 1 a_{i+1} ai+1​小,则认为我们将它“拆分成一个数”
  • 这样扫一遍下来,以 O ( n ) O(n) O(n)解决了求解单个数组的问题,但是,子数组的数量是 n 2 n^2 n2数量级,不能全部这样求解
  • 考虑 d p i , x dp_{i,x} dpi,x​是第 i i i个数被拆分成最小元素为 x x x的若干个数,并且以 x x x开头的非递减数列的数量。有 d p i − 1 , y dp_{i-1,y} dpi−1,y​ += d p i , x dp_{i,x} dpi,x​,因此可以转化。
  • 一个数 n n n拆分为最小元素 x x x ∈ \in ∈ { n n n, ⌊ n / 2 ⌋ \lfloor {n/2} \rfloor ⌊n/2⌋, ⌊ n / 3 ⌋ \lfloor {n/3} \rfloor ⌊n/3⌋,…, 1 1 1},这个集合中元素个数不是n个,而是 O ( n 1 / 2 ) O(n^{1/2}) O(n1/2)数量级的,这一点在整除分块的技巧中也有使用。
  • 最终我们根据 d p dp dp数组统计答案。对于 d p i + 1 , x dp{i+1,x} dpi+1,x,它对答案的贡献是 i ∗ d p i + 1 , x ∗ ( ⌈ a i / a i + 1 ⌉ − 1 ) i * dp_{i+1,x} * (\lceil a_i / a_{i+1} \rceil - 1) i∗dpi+1,x​∗(⌈ai​/ai+1​⌉−1),这是因为有 i ∗ d p i + 1 , x i * dp_{i+1,x} i∗dpi+1,x​个数列,每个数列对 a i a_i ai​执行这样的拆分

标签:Extension,17,ai,元素,dpi,数组,dp,Extreme
来源: https://blog.csdn.net/m0_51448653/article/details/121120713

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有