随笔分类 -  状态压缩

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

点击右上角即可分享
微信分享提示
主题色彩