摘要: 原题链接 考察:状压dp 这也能状压?果然是我太弱了. 思路: 很容易想到压缩相同的数字,采取最暴力的做法就是将m个数字全排列计算代价的最小值.时间复杂度是O(m!)会T爆,所以需要优化. 假设有队列3个,我们队列顺序为1 2和队列顺序2 1,最后放3.可以发现如果确定了1 2和2 1的最小值后,放 阅读全文
posted @ 2021-04-03 21:01 acmloser 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:区间dp 思路: 根据题目我们可以发现,当相邻两颗珠子合并时,只剩下首尾,中间部分不关心. 我们回顾一下区间dp,f[l][r]表示将[l,r]区间内的石子合并(以模板题为例),中间是什么我们也不关心,而f数组求最值是以某个分割点k来划分集合. f[l][r] = max(f[l][ 阅读全文
posted @ 2021-04-03 16:11 acmloser 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 重复覆盖模型,最优解是用dancing links.这里dp可以比暴力dfs稍微优化. 本蒟蒻的思路: 枚举两个点(横坐标不能相同)构造一条抛物线.再对每一条抛物线看是否还有点能被该抛物线覆盖.最后dp求到达(1<<n)-1的最短距离. 除法一定要注意判0 1 #inclu 阅读全文
posted @ 2021-04-03 15:32 acmloser 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:贪心 思路: 由贪心可得,最长上升子序列要求前面尽可能的小,最短上升子序列要求前面尽可能的大.如果没有<>的限制,那么最长上升子序列是1 2 3 4...n,最短上升子序列是n n-1...1.对于最长上升子序列,每有一个>说明前后需要互换位置,对于最短上升子序列,每有一个<说明前后 阅读全文
posted @ 2021-04-03 01:56 acmloser 阅读(61) 评论(0) 推荐(0) 编辑