随笔分类 - 状态压缩
摘要:题目描述 简要描述:给定一个长度为 的数组,求数组的子数组满足最大值为 且最小值为 的子区间的个数。 做法 1. ST表 + 二分 时间复杂度: 对于每个位置,二分出以它为左端点最大值为 的最远和最近的位置,以及以它为左端点最小值为
阅读全文
摘要:Freezing 牛客小白月赛53F 首先有一个朴素的 , dp[i][j] 表示前 个人中,且最后一个人的状态是 的方案数,然后暴力转移即可,复杂度 无法通过本题。 有一个不能通过本题的优化是,我们可以通过枚举 ~j 的子集,来进行状态
阅读全文
摘要:小沙的签到题 题目link 题目描述 给定一段长度为 的序列 ,求序列中有多少对数相加不会产生 10 进制的进位。 第一种做法是六维前缀和,考虑 s[bit1][bit2][bit3][bit4][bit5]
阅读全文
摘要:原题链接 思路 由于 的范围只有 , 很容易想到这题要用一个暴力的方法,我们可以用 状压dp 来解决这个问题。 令 为 当前车票的可选即可为 ,并且 当前的位置是 的最小花费,然后进行状态转移即可 SOLUTION #includ
阅读全文
摘要:思路 此题做法与LC 1755. 最接近目标值的子序列和类似 详情见这篇Blog 还是把数组分为两部分,分别用状态压缩进行枚举,然后对第二部分所凑成的值在第一部分中二分查找即可 AC_CODE #define fi first #define se second #define pb push_ba
阅读全文
摘要:题目描述 给你一个整数数组 nums 和一个目标值 goal 。 你需要从 nums 中选出一个子序列,使子序列元素总和最接近 goal 。也就是说,如果子序列元素和为 sum ,你需要 最小化绝对差 abs(sum - goal) 。 返回 abs(sum - goal) 可能的 最小值 。 注意
阅读全文