![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划-优化方法-数据结构优化
文章平均质量分 91
飞猪不会飞123
ICPC区域赛银,2年算法竞赛辅导经历。北京师范大学计算机研究生
展开
-
2021湘潭邀请赛-正式赛-I-区间划分dp,线段树优化贡献转移
类似题目:CFRound7221-E 前言: 本题给出了一种新的思路来用线段树优化dp,即用线段树优化花费函数转移. 题目大意: 给你一个nnn序列。让你将其划分成kkk段。每一段的贡献为:该段不同数字个数,问最小化贡献和。 n≤1e5,k≤10n \leq 1e5 , k \leq 10n≤1e5,k≤10 题目思路: 暴力dp. dp(i,j)dp(i,j)dp(i,j)代表前iii个数分成jjj个段的最小贡献和。有O(n2k)O(n^2k)O(n2k)的做法。 dp(i,j)=min{dp(k,j−1原创 2021-06-23 22:01:43 · 344 阅读 · 2 评论 -
单调队列优化多重背包-Acwing多重背包问题Ⅲ
题目大意:略 思路: 关键点: 1.从转移方程上想优化。 2.手写单调队列 为什么可以单调队列优化? 在第jjj个阶段(前jjj个物品): dp(i)=max{dp(i),dp(i−wj)+vj,...,dp(i−numj∗wj)+numj∗vj}dp(i)=max\{dp(i) ,dp(i-w_j)+v_j,...,dp(i-num_j*w_j)+num_j*v_j\}dp(i)=max{dp(i),dp(i−wj)+vj,...,dp(i−numj∗wj)+numj∗vj} 1.从转移方程我原创 2021-05-01 22:15:31 · 120 阅读 · 0 评论 -
I-九峰与分割序列-线段树优化dp,思维
前言: 看完题解发现好像自己在ARC做过类似的题目。。只是太久忘了。。然后一直在往贪心和一维决策单调性那边想去了。。。 题目大意: 给一个序列。让你将其分割成若干个子区间。每个子区间的贡献为:若前一个长度>k> k>k 并且当前长度≤k\leq k≤k,则为区间和的两倍。反之为区间和。问一个分割最大贡献。 题目思路: 考虑暴力的dpdpdp.dp(i,0/1)dp(i,0/1)dp(i,0/1)代表以iii为右端点,且长度是否>>>k的最优解。 dp[i][0]=max{原创 2021-03-30 10:44:43 · 139 阅读 · 0 评论