上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 75 下一页
摘要: 原题链接 考察:区间dp 思路: 这道题和凸边形的划分很像,枚举中间点,两边成为独立的两部分.只不过这题可以横,纵着切,所以是两个方向的区间dp.对于一块矩形板,我们选了上面,下面与平均值的标准差就确定了,快速求解矩阵和可用二维前缀和预处理.因为要用到二维,所以是五维转移方程f[x][y][a][b 阅读全文
posted @ 2021-04-05 12:01 acmloser 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp+dfs寻找路径 思路: 重复覆盖问题.参考愤怒的小鸟的思路,我们需要两两构造一个包含两个字符串a,b的DNA序列,然后要分a在前面与b在前面两种情况. 本蒟蒻一开始想的是定义结构体String,再定义结构体内部的st(二进制标记哪些串被标记),构造后的具体字符串s.每个状态 阅读全文
posted @ 2021-04-04 10:01 acmloser 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压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) 编辑
摘要: 原题链接 考察:有限状态机dp+kmp 鬼才想得到的解法 思路: 在验证某串a是否为b的子串时,常常使用kmp算法.当子串匹配下标j = 子串长度时,说明串a是串b的子串.如果i取到串b的最后一位时,j还没有 = a长度,说明a不是b的子串. 在这道题,我们需要构造串b,使得a不是b的子串,也就是j 阅读全文
posted @ 2021-04-02 13:31 acmloser 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp 思路: 很容易想到f[i][j]表示前i趟运了j头牛的最小时间(本蒟蒻虽然想到了但因为会T放弃了这个想法,所以会T的做法先想想看能不能优化啊啊啊) 所以f[i][j] = f[i-1][k]+sum[j-k]+2*m(这里会在最后一次多算一次m,最后答案减去即可).最后答案 阅读全文
posted @ 2021-04-01 22:22 acmloser 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树形背包dp 思路: 首先我们需要拿一个变量作为背包的体积,不能以钱数做体积,因为范围没有给定.所以只能以人数做体积.f[i][j]表示以i为根节点的子树中,选j个人的最大花费.如果>=0表示方案可行.因为人数是可以枚举的,所以不会漏解. 这里要注意的是背包体积不能直接设为m,否则会 阅读全文
posted @ 2021-04-01 19:10 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:背包dp 思路: 做之前看成01背包,然后答案一直不对,醉了. 实际是完全背包,因为需要的东西不超过5类,且不超过5个,所以可以用5维数组.5类物品的数目都是体积. 需要将编号离散化,这里用的是map映射. 但是注意的是我的本地IDE 在mp[x] = mp.size()是从1开始, 阅读全文
posted @ 2021-04-01 14:28 acmloser 阅读(126) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 75 下一页