摘要: 题目描述 给了一个字符串s和字符规律p 其中p可能含有"."和"","."可以匹配任何单个字符,""需要和前面字符结合,表示匹配0-任意个前面字符 问给定的p能不能匹配s f1-序列dp 基本分析 1.怎么定义状态?dp[i][j]表示p的前j个字符能不能匹配s的前i个字符 2.对i分类还是对j分类 阅读全文
posted @ 2022-11-08 19:51 zhangk1988 阅读(95) 评论(0) 推荐(0)
摘要: 题目描述 给一个长度是2*n的数组,需要将数组分成两个长度为n的数组 问怎么划分,可以让两个数组和的差的绝对值最小? f1-折半枚举+排序+二分 基本分析 1.题意怎么转化?两个数组和的差->从nums中选n个数取正号,其余n个数取负号,然后求元素和 2.整个数组最长是30,大概暗示了什么?如果折半 阅读全文
posted @ 2022-11-01 16:36 zhangk1988 阅读(291) 评论(0) 推荐(0)
摘要: 题目描述 给一个整数的数组nums,数组中的元素不超过30,数组长度不超过$10^5$ 给出了好子集的定义(数组中所有元素成绩可以拆分为互不相同质数的积) 对好子集个数的要求是不同子集删除的下标不同,那么也被视为不同的子集 问给定数组nums的好子集的个数? f1-状态压缩+动态规划 基本分析 直观 阅读全文
posted @ 2022-10-31 20:46 zhangk1988 阅读(49) 评论(0) 推荐(0)
摘要: 题目描述 给了一个学生数组和老师数组,数组长度都是m 每个数组元素ei又是个数组,有k个元素,某个数组其中学生和老师的对应元素一样的个数定义为兼容性评分 问怎么匹配老师和学生的数组,让兼容性评分最大? f1-状态压缩+动态规格 基本分析 这种两个等长数组匹配的题目怎么考虑?因为可以换顺序,固定一个不 阅读全文
posted @ 2022-10-29 10:12 zhangk1988 阅读(38) 评论(0) 推荐(0)
摘要: 题目描述 给了两个数组nums1和nums2,长度都是n,问怎么排列可以让数组对应元素的异或值之和最小? f1-二进制枚举+状态压缩 基本分析 1.有没有是啥贪心做法,因为看到相同元素异或可以为0?用二进制枚举可以实现这里,还要考虑其他元素,没有啥思路 2.这里涉及到两个元素的排列,枚举需要枚举哪个 阅读全文
posted @ 2022-10-28 21:33 zhangk1988 阅读(68) 评论(0) 推荐(0)
摘要: 题目描述 有个店,每次出货量是b,且只有之前全卖完以后才继续出货 给了一个整数数组groups,元素ei是这一批顾客的人数,且每个人刚好只要一个 如果某批顾客的第一个顾客拿到的货是新出的,这批人就会开心 问怎么安排来着的顺序,尽量让开心的批次最大? f1-非2进制状态压缩+动态规划 基本分析 直白的 阅读全文
posted @ 2022-10-28 20:25 zhangk1988 阅读(41) 评论(0) 推荐(0)
摘要: 题目描述 给一个数组正整数nums,数组长度是2*n 规定需要对数组执行n次操作,每次操作从nums中拿出两个元素x和y,计算分数$i \cdot gcd(x,y)$ 问n次操作后的分数和最大是多少? f1-状态压缩+动态规划 基本分析 有没有贪心的可能?没有啥思路 如果考虑用dp实现,怎么定义状态 阅读全文
posted @ 2022-10-27 17:10 zhangk1988 阅读(79) 评论(0) 推荐(0)
摘要: 题目描述 给一个整数数组nums,数组长度在40以下 再给一个目标值goal 问怎么能在数组中选一个子序列,让子序列的和最接近值goal? f1-折半+状态压缩+动态规划 基本分析 1.40这个长度怎么看,直接用状态压缩行不行?子集个数是$O(2^n)$, 每个子集需要O(n)去找一个子集中的非0元 阅读全文
posted @ 2022-10-27 15:27 zhangk1988 阅读(88) 评论(0) 推荐(0)
摘要: 题目描述 给了一个整数数组jobs表示工作,元素ei表示第i个工作需要花费的时间 给k个人,每个工作都需要分配,且每个只能给一个人 问如果要完成所有工作,求最短的工作时间? f1-状态压缩+动态规划 基本分析 能看出来需要二进制压缩状态,这里n是工作量,k是人数,怎么定义dp定义好?因为给第i个人的 阅读全文
posted @ 2022-10-27 11:48 zhangk1988 阅读(43) 评论(0) 推荐(0)
摘要: 题目描述 给一个数组nums,数组里面有一些值,值可能会重复 再给一个k,需要把nums分配到k个子集中,每个子集没有相同元素,且所有子集的不兼容性之和最小? f1-枚举子集+状态压缩+动态规划 基本分析 明显不满足要求的有哪些?某个值的次数>k 是不是存在贪心的思路?没有 因为需要给每个子集放n/ 阅读全文
posted @ 2022-10-26 17:29 zhangk1988 阅读(31) 评论(0) 推荐(0)
摘要: 题目描述 f1-记忆化搜索+轮廓线状态压缩 基本分析 轮廓线状态压缩的场景?在一个二维矩阵上进行动态规划+数据规模不大+可以通过当前位置与其左上方位置+左侧位置计算转移方程 为什么存n个状态而不是相关的2个状态?只存2个会丢状态,新的0找不到了;存n个可以递推出 具体怎么计算得分?新加人产生的分可分 阅读全文
posted @ 2022-10-25 17:42 zhangk1988 阅读(40) 评论(0) 推荐(0)
摘要: 题目描述 给了一个数组nums,数组中最多有50个不同的值 再给了m个顾客的订单数组,数组元素ei的含义是第i个顾客需要有ei个相同的整数 问给的nums能不能满足以上所有顾客的要求? f1-状态压缩+dp 基本分析 人数m不超过10?用二进制表示能满足人的子集 具体地取哪些数字重要吗?值不重要,值 阅读全文
posted @ 2022-10-25 14:04 zhangk1988 阅读(31) 评论(0) 推荐(0)
摘要: 题目描述 给一个数组nums,需要把他换分为两个连续的子数组,要求是两个子数组非空,且左边的每个元素都小于等于右边每个元素,左边数组长度尽可能小 求left的长度 f1-模拟+2次遍历 基本分析 题目直白的翻译是啥?能不能找到一个靠左的点,让左子数组的最大值<=右子数组的最小值? 怎么知道靠右边区间 阅读全文
posted @ 2022-10-24 20:32 zhangk1988 阅读(31) 评论(0) 推荐(0)
摘要: 题目描述 有n个城市,编号是1-n, 给了一个数组edges表示了城市的连接关系,且每个城市间最多只有一条路(城市间的连接是树), 需要求一个结果ans,其中ans[i]表示城市间最大距离是i+1子树的数目 f1-状态压缩+动态规划 基本分析 城市个数不超过15可以暗示什么?用二进制表示当前城市的选 阅读全文
posted @ 2022-10-24 20:03 zhangk1988 阅读(79) 评论(0) 推荐(0)
摘要: 题目描述 给一个列表hats,元素hats[i]表示第i个人喜欢的帽子类型 需要你给每个人都带自己喜欢颜色的帽子,同时不能和其他人一样 求方案数量 提示: 帽子个数不大于40 人数不大于8 f1-状态压缩+动态规划 基本分析 这里帽子个数不大于40,人数不大于8,考虑是帽子找人还是人找帽子?人少,肯 阅读全文
posted @ 2022-10-21 15:35 zhangk1988 阅读(68) 评论(0) 推荐(0)