Toy

【数据范围】
对于30%的数据,n≤10;
对于60%的数据,n≤100,m≤1000;
对于100%的数据,n≤1000,m≤1000000,单个玩具的价格≤1000。
  • 滚动数组技巧

这篇博客写的挺好,简单来说 所有使用滚动数组的技巧就是取余,这样不管遍历到多大的下标值,你都可以一个小的下标值进行表示,让新的答案覆盖掉原来旧的答案。
还得花时间去理解,这是非常重要的优化技巧!


  • 关于 toy 这题

看题也知道 \(\texttt很\)\(0/1\) 背包
\(f_{i,j}\) 表示前 \(i\) 个商店花 \(j\) 元得到最多有多少玩具。
\(f_{i,j}\) 可从\(f_{i-1,}\)\(f_{i-2,}\) 转移而来,而且上两周的时候可以新买一个玩具,表示为 \(f{i-2,j-x_i}+1\)


  • 易得状态转移方程:

\(f_{i,j}=1(i=1,j\ge x_i)\)
\(f_{i,j}=\max\{f_{i-1,j},f_{i-2,j},f_{i-2,j-x_i}+1\}(i\ge2,j\ge x_i)\)


$ \color{white}\texttt {frint i=1;i<n;i+)} $

$ \color{white}\texttt {{} $

$ \color{white}\texttt { f o r ( i n t j = m ; j > = /x 【 i 】/ ; j - - ) } $

$ \color{white}\texttt {{} $

$ \color{white}\texttt { f i> 2)} $

$ \color{white}\texttt {机密} $

$ \color{white}\texttt {e se} $

$ \color{white}\texttt {机密} $

$ \color{white}\texttt {}} $

$ \color{white}\texttt {}} $

posted @ 2022-03-31 21:41  ㅤSmartBig  阅读(365)  评论(0)    收藏  举报