首页 > 其他分享 >CF Edu160D Array Collapse

CF Edu160D Array Collapse

时间:2023-12-20 11:16:11浏览次数:28  
标签:Collapse la Edu160D CF dp Array 单调 栈内

可以操作任意多次。考虑 dp。

设 \(dp_i\) 表示考虑前 \(i\) 个位置之后,强制最终留下第 \(i\) 个位置上的数的方案数,转移时枚举前面的位置 \(j\),对于合法的决策 \(j\),显然需满足 \(\forall k\in(j,i)\),\(a_k>a_i\) 或 \(a_k>a_j\)。

显然可以提前预处理出每个位置 \(i\) 向前第一个比 \(a_i\) 小的数的下标 \(la_i\),则决策 \(k\in[la_i,i)\) 一定合法;对于决策 \(k\in[1,la_i)\),不难发现只有位于从 \(1\) 到 \(la_i-1\) 组成的单调递增的单调栈内的下标才合法。

于是可以在 dp 过程中顺便维护 \(sum_i\) 表示 \(\sum_{j=1}^i dp_j\),\(f_i\) 表示前 \(i\) 项组成的单调栈内的 \(dp\) 值之和,即可做到 \(O(n)\) 转移。

转操作至局面充要。

标签:Collapse,la,Edu160D,CF,dp,Array,单调,栈内
From: https://www.cnblogs.com/ydtz/p/17916059.html

相关文章

  • CF Edu160E Matrix Problem
    场上疯狂想求任意解+改动解至最优。。想不下去的时候一定要再读一遍题跳出来啊。限制每一行每一列的\(1\)的个数,这很匹配啊!!考虑网络流,左侧\(n\)个节点连流量\(a_i\),右侧\(m\)个节点连流量\(b_i\)。对于原矩阵中为\(0\)的项\((i,j)\),若新矩阵中为\(0\)则流量为\(0......
  • CF Edu160F Palindromic Problem
    赛时过的人少估计是因为难调。考虑修改一个字符的贡献,会使得所有以该字符为瓶颈的回文串增加长度,同时会使得原来所有最长回文串经过该位置的位置减少长度。换个视角,不妨通过二分+哈希分别预处理出以每个位置为回文中心的最长回文串长度、以及修改一个字符后的最长回文串长度,则对......
  • CF1872C-Non-coprime-Split-题解
    title:CF1872CNon-coprimeSplit题解date:2023-09-1821:09:14categories:-题解一个很怪的分讨想法。当\(l\neqr\)时,区间内一定有一个偶数。设最大的偶数为\(x\),那么当\(x>2\)时,可以得到一组解\((2,x-2)\),此时\(\gcd(2,x-2)=2\)。当\(l=r\)时,问题......
  • CF1870B-Friendly-Arrays-题解
    title:CF1870BFriendlyArrays题解date:2023-09-2010:32:12categories:-题解翻译给出长度为\(n\)的序列\(a\)和长度为\(m\)的序列\(b\),选出\(b\)中的任意个数(可以不选),让\(a\)的每个数都或上它们,求\(a_1\oplusa_2\oplus\dots\oplusa_n\)的最大值......
  • CF1861C-Queries-for-the-Array-题解
    title:CF1861CQueriesfortheArray题解date:2023-09-0607:53:53categories:-题解因为插入和删除操作都在队尾,所以对序列前缀分析一下:若一个序列的答案为YES,那么它前缀的答案也为YES。(对于没检查过的序列)若一个序列的答案为NO,那么它前缀的答案不确定。(对于没......
  • CF1703E-Mirror-Grid-题解
    title:CF1703EMirrorGrid题解date:2022-07-1511:54:20categories:-题解题目大意给出一个由\(0,1\)组成的矩阵,求最少改变矩阵中的多少个数,使得矩阵旋转\(0^\circ,90^\circ,180^\circ,270^\circ\)后相同。思路在一个\(n\timesn\)的矩阵中,对于任意一......
  • CF1593E-Gardener-and-Tree-题解
    title:CF1593EGardenerandTree题解date:2022-05-2721:30:48categories:-题解原题面题意:给出一个\(n\)个点的树,删除\(k\)次叶子节点,求剩下的节点数。思路:设\(cnt_i\)为\(k\)最小为多少时点\(i\)会被删除。当\(i\)将要被删除时,它一定是现在的叶子,联......
  • CF1866B Battling with Numbers 题解
    前置知识:如果\(p=x^a,q=x^b\),那么\(\gcd(p,q)=x^{\min(a,b)},\operatorname{lcm}(p,q)=x^{\max(a,b)}\)。对于每个\(x\ina_i\),令\(x\)在\(Y\)中的指数为\(d_i\)(实际上不一定),计算贡献时,考虑将\(b_i\)与\(d_i\)分别放入\(p\)和\(q\)中:如果\(b_i<d_i\),贡献为......
  • CF1814B Long Legs 题解
    建议降黄令\(m\)最后的值为\(a\),那么此时最佳答案为\(a-1+\left\lceil\frac{x}{a}\right\rceil+\left\lceil\frac{y}{a}\right\rceil\),每次加尽量大的\(m\)一定最优。当\(x,y\)增大时,答案显然不降,考虑找到\(a\)的上界。用\(O(n)\)的暴力跑极限数据,发现答......
  • CF468C Hack it! 题解
    题意:给出一个数\(a\),构造一组\(l,r\)使得\(\sum_{i=l}^rf(i)\equiv0\pmoda\)。其中\(a\leq10^{18}\),\(l,r\leq10^{200}\)。分析:以下用\((l,r)\)表示构造出来的一对\(l,r\),\(f(l,r)=\sum_{i=l}^rf(i)\)。考虑从某个值一步一步移动到模\(a\)余\(0\)的情况。......