当前位置: 首页 > news >正文

网站开发企业培训心得总结wordpress标题字数

网站开发企业培训心得总结,wordpress标题字数,淘宝网站是哪个公司做的,网络宣传方式在背包问题中#xff0c;贪心算法通常用来解决0-1背包问题#xff0c;也就是每种物品都有固定数量#xff0c;你可以选择拿或者不拿#xff0c;但不可以拿走部分。以下是一个用C语言实现的贪心算法的例子#xff1a; #include stdio.h#define MAX_N 1000#define … 在背包问题中贪心算法通常用来解决0-1背包问题也就是每种物品都有固定数量你可以选择拿或者不拿但不可以拿走部分。以下是一个用C语言实现的贪心算法的例子 #include stdio.h#define MAX_N 1000#define MAX_W 100000int n, W;int w[MAX_N], v[MAX_N], s[MAX_N];int f[MAX_N][MAX_W];int max(int a, int b) {    return a b ? a : b;}int min(int a, int b) {    return a b ? a : b;}int main() {    scanf(%d %d, n, W);    for (int i 0; i n; i) {        scanf(%d %d %d, w[i], v[i], s[i]);    }    for (int i 0; i n; i) {        for (int j W; j w[i]; j--) {            f[i][j] max(f[i][j], f[i - 1][j - w[i]] v[i]);        }    }    printf(%d\n, f[n - 1][W]);    return 0;} 在这个例子中输入包括物品的数量n和背包的总容量W然后是每个物品的重量w[i]价值v[i]和数量s[i]。在这个版本的背包问题中每个物品可以取多次。f[i][j]表示在容量为j的背包中前i个物品能够获得的最大价值。程序最后输出的是在给定背包容量下所有物品的最大价值。 背包问题的贪心算法主要是针对0-1背包问题即每种物品都有固定数量可以选择拿或者不拿但不可以拿走部分。贪心算法的策略是在每一步选择中都采取在当前状态下最好或最优即最有利的选择从而希望导致结果是最好或最优的。 在背包问题中我们通常用动态规划来求解。在上述代码中我们用f[i][j]表示前i个物品在容量为j的背包中能够获得的最大价值。初始状态是f[0][j] 0表示不取任何物品时的价值为0。然后我们依次考虑每个物品对于每个物品我们都尝试放入背包中并更新f[i][j]。 对于每个物品i我们从背包容量W开始考虑逐步减小背包容量直到背包容量小于物品i的重量。在这个过程中我们希望找到一个最小的背包容量使得放入物品i后能够获得最大的价值。这个最小的背包容量就是f[i - 1][j - w[i]]表示前i - 1个物品在容量为j - w[i]的背包中能够获得的最大价值。如果我们将物品i放入容量为j - w[i]的背包中那么这个背包的容量就增加了w[i]所以能够获得的最大价值就是f[i - 1][j - w[i]] v[i]。 因此我们可以得到状态转移方程f[i][j] max(f[i][j], f[i - 1][j - w[i]] v[i])。这个状态转移方程表示对于前i个物品在容量为j的背包中能够获得的最大价值f[i][j]要么是前i个物品在容量为j的背包中能够获得的最大价值f[i][j]要么是前i - 1个物品在容量为j - w[i]的背包中能够获得的最大价值f[i - 1][j - w[i]] v[i]。 最后输出f[n - 1][W]表示前n个物品在容量为W的背包中能够获得的最大价值。 除了上述的贪心算法外还有一种称为“完全背包”的贪心算法适用于物品数量不固定的情况。 在完全背包问题中每种物品的数量是无限的可以选择拿或者不拿但不可以拿走部分。以下是一个用C语言实现的完全背包问题的贪心算法 #include stdio.h#define MAX_N 1000#define MAX_W 100000int n, W;int w[MAX_N], v[MAX_N];int f[MAX_N][MAX_W];int max(int a, int b) {    return a b ? a : b;}int min(int a, int b) {    return a b ? a : b;}int main() {    scanf(%d %d, n, W);    for (int i 0; i n; i) {        scanf(%d %d, w[i], v[i]);    }    for (int i 0; i n; i) {        for (int j w[i]; j W; j) {            f[i][j] max(f[i][j], f[i - 1][j - w[i]] v[i]);        }    }    printf(%d\n, f[n - 1][W]);    return 0;} 在这个例子中输入包括物品的数量n和背包的总容量W然后是每个物品的重量w[i]和价值v[i]。在这个版本的背包问题中每种物品的数量是无限的可以选择拿或者不拿但不可以拿走部分。我们用f[i][j]表示前i个物品在容量为j的背包中能够获得的最大价值。程序最后输出的是在给定背包容量下所有物品的最大价值。 在完全背包问题中由于每种物品的数量是无限的所以可以将每个物品看作是一个整体而不必考虑其数量。因此我们可以将每个物品的重量和价值看作是其整体的“单位重量”和“单位价值”。 在贪心算法中我们采取的策略是在每一步选择中都采取在当前状态下最好或最优即最有利的选择从而希望导致结果是最好或最优的。因此我们可以将每个物品的单位价值除以单位重量得到一个“性价比”然后按照性价比从高到低的顺序依次考虑每个物品。 具体实现时我们可以先计算每个物品的单位重量和单位价值然后按照单位价值的降序排列每个物品。对于每个物品我们可以依次将其加入背包中并更新背包的容量和价值。这个过程中需要用到一个二维数组f[i][j]表示前i个物品在容量为j的背包中能够获得的最大价值。 状态转移方程与上面的背包问题类似可以用以下公式表示 f[i][j] max(f[i][j], f[i - 1][j - w[i]] v[i])其中w[i]表示第i个物品的重量v[i]表示第i个物品的价值。 最后输出f[n - 1][W]表示前n个物品在容量为W的背包中能够获得的最大价值。
http://www.yutouwan.com/news/167729/

相关文章:

  • 深圳市住房和建设局网站变更做点击率的网站
  • 深圳宝安网站建设公司功能型网站
  • joomla做类似赶集网的网站抖音代运营商业模式
  • 免费发布信息的网站平台营销什么意思
  • 招聘类网站建设每天看七个广告赚40元的app
  • 网站开发与管理心得体会常宁市城市建设规划管理局网站
  • 合优做网站需要多少钱网站建设北京
  • 廉江网站建设公司腾讯云免费网站建设
  • 做公司的宣传网站需要注意什么设计网站vcg
  • 建设银行的网站wordpress秀主题
  • 网站怎么制作免费的下载京东商城网上购物
  • 宝安做网站多少钱化妆品商城网站建设
  • 光效网站南宁建设集团招聘信息网站
  • 长沙网站制造吉林做网站多少钱
  • 阜阳商城网站建设电子商务网站建设规划的内容
  • 做资料分享网站有哪些广东网站开发搭建
  • 在vs做的项目怎么连接到网站枫叶主机 wordpress
  • 高唐建筑公司网站洛阳霞光seo网络公司
  • 公司网站建设专家做网站推广一年多少钱
  • 大连百姓网免费发布信息网站用jsp做的网站需要什么工具
  • 昆山汽车网站建设重庆免费建网站
  • 备案网站应用服务网站开发合同甲方的权利
  • 无需注册网站模板下载wordpress主题_
  • 创意网站交互推广普通话的手抄报怎么画
  • 网站建设招标文件范本网站建设分析魅族
  • 图库素材网站模板网站建设的方法步骤
  • 厦门高端网站建设济南哪里做网站
  • 学校信息化网站建设新手网站设计看哪本书
  • 文件传输协议登录网站美食网站设计规划书
  • 网站建设面板重庆市建设工程施工安全管理网官网