638. 大礼包 在LeetCode商店中, 有许多在售的物品. 然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品. 现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单.请输出确切完成待购清单的最低花费. 每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量. 任意大礼包可无限次购买. 示例 1: 输入: [2,5], [[3,0,5],[1,2,10]], [3,2] 输出: 14 解释: 有A和B两种物品,价…
题目:传送门. 题意:阅读理解题,是一个osu的游戏,问得分.把题目翻译过来就是如果出现S或者BC后面跟的是1,ans就加1. #include <iostream> #include <algorithm> #include <cstdio> #include <map> #include <vector> #include <cstring> using namespace std; int main() { int n; ];…
1111. 有效括号的嵌套深度 有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然.详情参见题末「有效括号字符串」部分. 嵌套深度 depth 定义:即有效括号字符串嵌套的层数,depth(A) 表示有效括号字符串 A 的嵌套深度.详情参见题末「嵌套深度」部分. 给你一个「有效括号字符串」 seq,请你将其分成两个不相交的有效括号字符串,A 和 B,并使这两个字符串的深度最小. 不相交:每个 seq[i] 只能分给 A 和 B 二者中的一个,不能既属于 A 也属于 B .…
题目描述: https://leetcode-cn.com/problems/shopping-offers/ 解题思路: 这类求最大最小的问题首先想到的就是用DP求解. 这题还用到了递归,首先计算单买商品,不购买大礼包的价格最为初始最小价值. 再利用循环计算包含每一个大礼包时的最小价值.需要递归计算的是,在购买了礼包A以后,剩余的需求量的最小价格. 其中需要注意的是不能超过需求量购买商品,所以对于每个礼包需要做一次判断,是否购买了该礼包后,超过了总需求. 代码: class Solution…
Bzoj的翻译出锅了所以来官方题面:这个题应该是单向边而BZOJ说的是双向边,什么你WA了?谁叫你懒得看英文...... 显然我们能正向反向两遍SPFA处理出每个点到总部的距离和总部到每个点的距离.如果某个点所在的部门的大小为S,那么这个点需要送出S-1次消息并接收S-1次消息.我们把每个点的两个距离求和并排序,显然在一个块中的是这个序列上的一个区间(脑补一下为什么不这样不优),我们做一下前缀和.然后就开始DP了,f[i][j]表示前i个点分j个块,最小代价.f[i][j] = min( f[k…
834. 树中距离之和 给定一个无向.连通的树.树中有 N 个标记为 0-N-1 的节点以及 N-1 条边 . 第 i 条边连接节点 edges[i][0] 和 edges[i][1] . 返回一个表示节点 i 与其他所有节点距离之和的列表 ans. 示例 1: 输入: N = 6, edges = [[0,1],[0,2],[2,3],[2,4],[2,5]] 输出: [8,12,6,10,10,10] 解释: 如下为给定的树的示意图: 0 / 1 2 /| 3 4 5 我们可以计算出 dis…
784. 字母大小写全排列 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1b2", "a1B2", "A1b2", "A1B2"] 输入: S = "3z4" 输出: ["3z4", "3Z4"] 输入: S = "…
756. 金字塔转换矩阵 现在,我们用一些方块来堆砌一个金字塔. 每个方块用仅包含一个字母的字符串表示. 使用三元组表示金字塔的堆砌规则如下: 对于三元组(A, B, C) ,"C"为顶层方块,方块"A"."B"分别作为方块"C"下一层的的左.右子块.当且仅当(A, B, C)是被允许的三元组,我们才可以将其堆砌上. 初始时,给定金字塔的基层 bottom,用一个字符串表示.一个允许的三元组列表 allowed,每个三元组用一…
691. 贴纸拼词 我们给出了 N 种不同类型的贴纸.每个贴纸上都有一个小写的英文单词. 你希望从自己的贴纸集合中裁剪单个字母并重新排列它们,从而拼写出给定的目标字符串 target. 如果你愿意的话,你可以不止一次地使用每一张贴纸,而且每一张贴纸的数量都是无限的. 拼出目标 target 所需的最小贴纸数量是多少?如果任务不可能,则返回 -1. 示例 1: 输入: ["with", "example", "science"], "th…
664. 奇怪的打印机 有台奇怪的打印机有以下两个特殊要求: 打印机每次只能打印同一个字符序列. 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符. 给定一个只包含小写英文字母的字符串,你的任务是计算这个打印机打印它需要的最少次数. 示例 1: 输入: "aaabbb" 输出: 2 解释: 首先打印 "aaa" 然后打印 "bbb". 示例 2: 输入: "aba" 输出: 2 解释: 首先打印 "…