lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

随笔分类 -  算法

上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页

摘要:1. 什么是01背包问题? 01背包问题是一种经典的组合优化问题,它的描述如下: 有n种物品和一个容量为C的背包,每种物品有一个重量w[i]和一个价值v[i],其中i=1,2,…,n。问如何选择物品放入背包,使得背包内的物品总价值最大,且不超过背包的容量? 这里的01表示每种物品只能选择放入或不放入 阅读全文
posted @ 2023-07-08 16:31 白露~ 阅读(105) 评论(0) 推荐(0) 编辑

摘要:动态规划 之多重背包 问题 1. 问题描述及分析 动态规划是一种解决复杂问题的方法, 它将一个大问题分解为若干个子问题,通过求解子问题,从而得到原问题的最优解。动态规划的核心思想是避免重复计算,利用已有的结果进行状态转移。 背包问题是一类经典的动态规划问题, 它描述了如何在给定的背包容量和若干个物品 阅读全文
posted @ 2023-07-08 16:13 白露~ 阅读(109) 评论(0) 推荐(0) 编辑

摘要:1. 题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取 阅读全文
posted @ 2023-07-08 15:33 白露~ 阅读(18) 评论(0) 推荐(0) 编辑

摘要:1. 01背包:二维朴素写法 public static int getMaxValue(int[] weight, int[] values, int w) { int n = weight.length; int[][] dp = new int[n + 1][w + 1]; for (int 阅读全文
posted @ 2023-07-06 18:55 白露~ 阅读(9) 评论(0) 推荐(0) 编辑

摘要:1. 国内算法网站对比 网站名称国内/国外内容介绍题目难度题目数量题目类型竞赛活动解题思路编程工具 LeetCode中国 国内 算法题库和面试题库,适合准备面试和提高算法能力 合理分布,从Easy到Hard都有 2000+ 算法和数据结构,涵盖多个领域和技术 有,包括每周一次的周赛和不定期的挑战赛等 阅读全文
posted @ 2023-07-06 18:44 白露~ 阅读(587) 评论(0) 推荐(0) 编辑

摘要:1. 题目 读题 考查点 2. 解法 思路 解法思路是这样的: 由于房屋是环形排列的,所以不能同时偷第一个和最后一个房间,否则会触发报警。 因此,可以将问题分成两个子问题,一个是不偷第一个房间,另一个是不偷最后一个房间。 对于每个子问题,可以用动态规划的方法求解,定义一个数组表示从某个起点到某个终点 阅读全文
posted @ 2023-07-04 17:26 白露~ 阅读(9) 评论(0) 推荐(0) 编辑

摘要:1. 算法思想 简单选择排序是一种基本的排序算法, 它的思想是 每次从待排序的序列中选择一个最小(或最大)的元素,放到已排序的序列末尾,直到所有元素都排好序。 它的时间复杂度是O(n^2),空间复杂度是O(1)。 2. 图解 3. JAVA实现 下面是简单选择排序的JAVA实现: public cl 阅读全文
posted @ 2023-07-03 21:23 白露~ 阅读(37) 评论(0) 推荐(0) 编辑

摘要:1. 问题 分组的背包问题是一种扩展的背包问题,它的特点是将物品分为若干组,每组中的物品互相冲突,最多只能选择一件。给定一个背包的容量和每组物品的重量和价值,求如何选择物品使得背包内的总价值最大 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组 阅读全文
posted @ 2023-07-01 21:18 白露~ 阅读(165) 评论(0) 推荐(0) 编辑

摘要:以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这里值得提一下。但是我认为,只要深入理解了求背包问题最大价值的方法,即使问法变化了,也是不难想出算法的。 例如,求解最多可以放多少件物品或者最多可以装满多少背包的空间。这都可以根据具体问题 阅读全文
posted @ 2023-06-30 20:58 白露~ 阅读(28) 评论(0) 推荐(0) 编辑

摘要:1. 问题描述 有依赖的背包问题是一种在01背包问题的基础上增加了物品之间的依赖关系的背包问题。也就是说,某些物品必须放在另一些物品之后才能放入背包,或者某些物品只有在另一些物品被放入背包时才能放入背包。 例如,假设有5件物品,每件物品有重量和价值两个属性,还有一个承重为10的背包。物品之间的依赖关 阅读全文
posted @ 2023-06-30 20:58 白露~ 阅读(220) 评论(0) 推荐(0) 编辑

摘要:动态规划之背包之泛化物品 1. 问题描述: 背包问题是一类经典的动态规划问题,它描述了一个背包有一定的容量,而有若干个物品,每个物品有自己的重量和价值,如何从这些物品中选择一部分放入背包,使得背包内物品的总价值最大。背包问题有很多变种,例如0-1背包、完全背包、多重背包等。 泛化物品是一种扩展了背包 阅读全文
posted @ 2023-06-30 20:58 白露~ 阅读(155) 评论(0) 推荐(0) 编辑

摘要:USACO是USA Computing Olympiad的简称,它组织了很多面向全球的计算机竞赛活动。 USACO Trainng是一个很适合初学者的题库,我认为它的特色是题目质量高,循序渐进,还配有不错的课文和题目分析。其中关于背包问题的那篇课文 (TEXT Knapsack Problems) 阅读全文
posted @ 2023-06-30 20:58 白露~ 阅读(67) 评论(0) 推荐(0) 编辑

摘要:《背包问题九讲》的本意是将背包问题作为动态规划问题中的一类进行讲解。但鉴于的确有一些背包问题只能用搜索来解,所以这里也对用搜索解背包问题做简单介绍。大部分以01背包为例,其它的应该可以触类旁通。 简单的深搜 对于01背包问题,简单的深搜的复杂度是O(2^N)。就是枚举出所有2^N种将物品放入背包的方 阅读全文
posted @ 2023-06-30 20:57 白露~ 阅读(36) 评论(0) 推荐(0) 编辑

摘要:动态规划之 二维费用的背包问题 1. 问题描述 二维费用的背包问题是指对于每件物品,具有两种不同的费用,选择这件物品必须同时付出这两种代价,对于每种代价都有一个可付出的最大值(背包容量),求选择物品可以得到最大的价值。 例如,有一个背包,它的容量为V,它的重量限制为U。有N件物品,第i件物品的体积为 阅读全文
posted @ 2023-06-30 20:57 白露~ 阅读(453) 评论(0) 推荐(0) 编辑

摘要:1. 问题 背包问题是一类经典的动态规划问题,它描述了一个人在有限的背包容量下,如何选择一些物品装入背包,使得物品的总价值最大。 根据物品的不同特征和限制条件,背包问题可以分为以下三种基本类型: 01背包:每种物品只有一件,可以选择放或不放。 完全背包:每种物品有无限件,可以选择放任意件。 多重背包 阅读全文
posted @ 2023-06-30 20:47 白露~ 阅读(147) 评论(0) 推荐(0) 编辑

摘要:题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并 阅读全文
posted @ 2023-06-29 20:56 白露~ 阅读(14) 评论(0) 推荐(0) 编辑

摘要:题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状 阅读全文
posted @ 2023-06-29 20:47 白露~ 阅读(17) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
点击右上角即可分享
微信分享提示