随笔分类 -  算法提高课

摘要:题目链接 题目描述 潜水员为了潜水要使用特殊的装备。 他有一个带2种气体的气缸:一个为氧气,一个为氮气。 让潜水员下潜的深度需要各种数量的氧和氮。 潜水员有一定数量的气缸。 每个气缸都有重量和气体容量。 潜水员为了完成他的工作需要特定数量的氧和氮。 他完成工作所需气缸的总重的最低限度的是多少? 题目 阅读全文
posted @ 2022-06-04 18:59 esico 阅读(109) 评论(0) 推荐(0)
摘要:题目链接 题目描述 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。 问小明有多少种买书方案?(每种书可购买多本) 题目模型 集合表示:f(i,j) 集合含义:所有只从前i个物品中选,且总体积恰好是j的方案的集合 集合属性:Count 集合划分:f[i,j]=f[i-1,j 阅读全文
posted @ 2022-06-04 17:35 esico 阅读(52) 评论(0) 推荐(0)
摘要:题目链接 题目描述 为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。 期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力。 题目模型 多重背包简单应用 题目代码 #include <iostream> using namespace std; 阅读全文
posted @ 2022-06-04 17:22 esico 阅读(58) 评论(0) 推荐(0)
摘要:题目链接 题目描述 给定 N 个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。 题目模型 集合表示:f(i,j) 集合含义:所有只从前i个数中选,且总和恰好是j的方案的集合 集合属性:count 集合划分:左部分:f[i-1][j] 右部分:f[i-1][j- 阅读全文
posted @ 2022-06-04 17:00 esico 阅读(44) 评论(0) 推荐(0)
摘要:题目链接 题目描述 有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。 每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。 输出最大价值。 题目模型 集合表示:f( 阅读全文
posted @ 2022-06-04 16:29 esico 阅读(20) 评论(0) 推荐(0)
摘要:题目链接 题目描述 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 题目模型 每种物品可以打包成数量为1,2,4,...,c的物品 对于打包好的物品进 阅读全文
posted @ 2022-05-17 11:12 esico 阅读(36) 评论(0) 推荐(0)
摘要:题目链接 题目描述 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。 输出最大价值。 题目模型 多重背包:每件物品最多选si件 集合表示:f(i,j) 集合含义:所有只 阅读全文
posted @ 2022-04-21 20:01 esico 阅读(36) 评论(0) 推荐(0)
摘要:题目链接 题目描述 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 题目模型 完全背包:每个物品可以选无穷件 集合表示:f(i,j) 集合含义: 阅读全文
posted @ 2022-04-21 19:36 esico 阅读(33) 评论(0) 推荐(0)
摘要:题目链接 题目描述 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 题目模型 01背包:每个物品只能选或不选 集合表示:f(i,j) 集合含义:所 阅读全文
posted @ 2022-04-21 19:22 esico 阅读(29) 评论(0) 推荐(0)
摘要:题目链接 题目描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。 小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。 小沐沐说,对于两个数列 A 和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上 阅读全文
posted @ 2022-04-14 17:01 esico 阅读(27) 评论(0) 推荐(0)
摘要:题目链接 题目描述 给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 题目模型 集合表示:f(i,j) 集合含义:所有在第一个序列的前i个字母中出现,且在第二个序列的前j个字母中出现的子序列 集合属性:max 集合划分: 题目代码 阅读全文
posted @ 2022-04-14 16:33 esico 阅读(47) 评论(0) 推荐(0)
摘要:题目链接 题目描述 为了对抗附近恶意国家的威胁,R 国更新了他们的导弹防御系统。 一套防御系统的导弹拦截高度要么一直 严格单调 上升要么一直 严格单调 下降。 例如,一套系统先后拦截了高度为 3 和高度为 4 的两发导弹,那么接下来该系统就只能拦截高度大于 4 的导弹。 给定即将袭来的一系列导弹的高 阅读全文
posted @ 2022-04-14 15:51 esico 阅读(47) 评论(0) 推荐(0)
摘要:题目链接 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,雷达捕捉到敌国的导弹来袭。 由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入 阅读全文
posted @ 2022-04-14 15:14 esico 阅读(65) 评论(0) 推荐(0)
摘要:题目链接 题目描述 一个数的序列 bi,当 b1<b2<…<bS 的时候,我们称这个序列是上升的。 对于给定的一个序列(a1,a2,…,aN),我们可以得到一些上升的子序列(ai1,ai2,…,aiK),这里1≤i1<i2<…<iK≤N。 比如,对于序列(1,7,3,5,9,4,8),有它的一些上升 阅读全文
posted @ 2022-04-13 11:21 esico 阅读(53) 评论(0) 推荐(0)
摘要:题目链接 题目描述 Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。 北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。 每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免 阅读全文
posted @ 2022-04-13 11:08 esico 阅读(63) 评论(0) 推荐(0)
摘要:题目链接 题目描述 N 位同学站成一排,音乐老师要请其中的 (N−K) 位同学出列,使得剩下的 K 位同学排成合唱队形。 合唱队形是指这样的一种队形:设 K 位同学从左到右依次编号为 1,2…,K,他们的身高分别为 T1,T2,…,TK, 则他们的身高满足 T1<…Ti+1>…>TK(1≤i≤K)。 阅读全文
posted @ 2022-04-13 10:28 esico 阅读(52) 评论(0) 推荐(0)
摘要:题目链接 题目描述 五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。 同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。 队员们希望在满足上面条件的 阅读全文
posted @ 2022-04-10 22:08 esico 阅读(30) 评论(0) 推荐(0)
摘要:题目链接 题目描述 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置 阅读全文
posted @ 2022-04-10 21:48 esico 阅读(102) 评论(0) 推荐(0)
摘要:题目链接 题目描述 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 1≤N≤100000 题目模型 题目分析: 对于下图所示样例,当某一个数能放在3后面时,肯定能放在1后面。所以我们只需记录每一个长度下最后一个元素的最小值是多少就可以了。 用q[i]数组记录长度为i的上升子 阅读全文
posted @ 2022-04-10 21:06 esico 阅读(41) 评论(0) 推荐(0)
摘要:题目链接 题目描述 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 题目模型 集合表示:f(i) 集合含义:所有以第i个数结尾的上升子序列 集合属性:max 集合划分: 以第i个元素的上个元素的下标作为划分依据: 题目代码 #include <iostream> #incl 阅读全文
posted @ 2022-04-10 20:05 esico 阅读(37) 评论(0) 推荐(0)