随笔分类 -  无类型DP

摘要:满分作法: dp[i][j]表示第i个骰子置出后,总点数为j的概率。 阅读全文
posted @ 2019-11-12 21:27 lihan123 阅读(132) 评论(0) 推荐(0)
摘要:"题目链接" 满分做法: 考虑DP,dp[i]表示表示前i个符合条件的最小合并次数,再记录一个minn[i]表示仅考虑前 i 朵小花,在操作次数最少的前提下,最终合并得到的最右的小花的最低美丽值。 倒叙转移,保证最小合并次数的前提下,最右值最小。 阅读全文
posted @ 2019-11-06 10:04 lihan123 阅读(162) 评论(0) 推荐(0)
摘要:满分做法: 本题采用贪心:分出来的区间一定是单调的,因为如果不满足单调可以拆分出单调的使答案更大。DP转移时考虑极值的归属 cpp include include include include include include using namespace std; typedef long lo 阅读全文
posted @ 2019-11-04 20:17 lihan123 阅读(237) 评论(0) 推荐(0)
摘要:30分做法: 直接暴力选数即可: 满分做法: 阅读全文
posted @ 2019-10-24 21:50 lihan123 阅读(91) 评论(0) 推荐(0)
摘要:满分做法: 几组样例充分说明,最优的子序列单调区间最多不超过两个。所以可以用树状数组维护三个值,一个是单增的最大值,一个是单减的最大值,一个是有拐点的最大值。最后离散化倒叙处理即可 阅读全文
posted @ 2019-10-23 19:57 lihan123 阅读(110) 评论(0) 推荐(0)
摘要:60分做法:直接暴力背包 满分做法: 按照K的因数进行背包即可 阅读全文
posted @ 2019-10-21 20:12 lihan123 阅读(401) 评论(0) 推荐(0)
摘要:满分做法: 有一个专门解决这类问题的算法叫:GarsiaWachs算法。 算法流程:1.从序列开头往后找第一个位置$i$满足$a[i]=a[i]+a[i+1]$,并把合并的值插入到$j$后面。 这样复杂度就降到了$n²$,用vector就可以达到$nlogn$了。(可以用平衡树优化,但我不会┭┮﹏┭ 阅读全文
posted @ 2019-10-21 11:13 lihan123 阅读(327) 评论(0) 推荐(0)