首页 > 其他分享 >ABC159F Knapsack for All Segments

ABC159F Knapsack for All Segments

时间:2023-10-16 09:00:09浏览次数:39  
标签:ABC159F Segments Knapsack 序列 cases dp

原题

翻译

\(O(n^3)\) 的朴素 \(dp\) 是 simple 的

考虑定义一个子序列是”好的子序列”当且仅当 \(a_l\) 和 \(a_r\) 都在子序列中,容易发现他对答案的贡献是包含他的区间,即 \(l \times (n - r + 1)\)

先说我自己的做法:设 \(dp_{i,j}\) 表示强制以 \(i\) 结尾,子序列和为 \(j\) 的答案,注意这里要带上他的左端点系数,即 \(l\)

容易得到递推式:

\[\begin{cases} dp_{i,j} = \sum_{j<i} dp_{i,j-a_i} & (j > a_i) \\ dp_{i,j} = i & (j = a_i) \end{cases} \]

其中可以用前缀和优化转移,做到 \(O(n^2)\)

题解里做法大同小异,他们但去掉了强制的设定,变成了一个 01 背包问题然后求解,而对于钦定

最终复杂度 \(O(n^2)\)

标签:ABC159F,Segments,Knapsack,序列,cases,dp
From: https://www.cnblogs.com/fox-konata/p/17766611.html

相关文章

  • CF997E Good Subsegments
    简要题意一个好区间是其中数在值域上连续的区间,给定\(n\)的排列,每次给定一个区间,问其中有多少好的子区间。数据范围:\(1\len\le120000\)。做法只有整体询问的版本是CupboardMonsters。值域上连续当且仅当区间最大值减最小值等于区间长度,考虑维护最大值减最小值减区间长度......
  • CF1858D Trees and Segments
    一道考查预处理技巧的dp。观察式子\(a\timesL_0+L_1\),一个显然的想法是“定一求一”,即预处理求出对于每个\(L_1\)最大的\(L_0\),然后对于每个\(a\),枚举\(L_1\),统计最大的\(a\timesL_0+L_1\)。这样,我们将问题转化为了:已知\(L_1=len\),求出\(dp_{len}=L_{0max}\)。dp数......
  • D. Trees and Segments
    D.TreesandSegmentsTheteachersoftheSummerInformaticsSchooldecidedtoplant$n$treesinarow,anditwasdecidedtoplantonlyoaksandfirs.Todothis,theymadeaplan,whichcanberepresentedasabinarystring$s$oflength$n$.If$s_i=......
  • CF997E Good Subsegments
    简单题,不知道为啥和弱化版一个Difficulty。考虑弱化怎么做。区间\([l,r]\)中的数是连续的,当且仅当区间最大值\(\max\)减去区间最小值\(\min\)为\(r-l\),即\(\max-\min=r-l\)。考虑扫描线,固定右端点\(r\),统计每个左端点的贡献。由于\(S(l,r)=\text{max}-\text{min}+l......
  • 1843E - Tracking Segments
    Problem-E-Codeforces题意是现在有n个0,给你m段序列,然后给你q次操作,每次操作给一个x,把第x个0变成1,问你最少几次操作能出现一段序列里的1的数量大于0的数量,如果不存在,输出-1对于操作数是一个递增序列。如果第k次操作后正好可行,那么就不用管k+1及以后了。所以可以使用二分来解......
  • CF1843E Tracking Segments
    CF1843ETrackingSegmentsVP的时候本来摆烂了,结果快结束的时候想到了做法(没时间敲了qwq)。这里提供一种和已有题解不同的思路。我们发现,对于每个修改,我们可以将该点的值修改为这次修改的时间,未修改的点则赋为\(n+1\)。这样转化后,区间合法的条件就是区间内小于\(n+1\)的值至......
  • unbounded knapsack problem
    DescriptionUnboundedKnapsackProblemThereare$N$kindsofitemsandaknapsackwiththecapacityof$V$,eachitemhasunlimitedpiecesavailable.Thevolumeofthe$i$-thitemis$v_i$,andvalueis$w_i$.Pleasesolvewhichitemscanbeputintothe......
  • Educational Codeforces Round 4-D. The Union of k-Segments
    原题链接D.TheUnionofk-SegmentstimelimitpertestmemorylimitpertestinputoutputYouaregiven n segmentsonthecoordinateaxis Ox andthenumber k.Thepoint......
  • Codeforces Beta Round #22 (Div. 2 Only)-D. Segments
    原题链接D.SegmentstimelimitpertestmemorylimitpertestinputoutputYouaregiven nInputThefirstlineoftheinputcontainssingleintegernumber n (1 ≤ n ......
  • 【题解】CF193D Two Segments
    题意给定一个\(1\simN\)的排列,在这个排列中选出两段互不重叠的区间,求使选出的元素排序后构成公差为1的等差数列的方案数。选出的两段区间中元素构成的集合相同时视为同一种方案。\(1\leN\le3\times10^5\)。传送门分析如果考虑怎么优化枚举的两个区间的话,发现不太好搞(反正......