精选幻灯片NOIP普及讲座动态规划.pptVIP

  • 1
  • 0
  • 约2.61千字
  • 约 23页
  • 2020-11-15 发布于天津
  • 举报
动态规划 2 1 【例题 1 】装箱问题( noi openjudge 8785 ) 问题描述: 有一个箱子容量为 V (正整数, 0=v=20000 ),同时有 n 个物品( 0 n=30 ),每个物品有一个体积(正整数)。 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入 第一行是一个整数 V ,表示箱子容量。 第二行是一个整数 n ,表示物品数。 接下来 n 行,每行一个正整数(不超过 10000 ),分别表示这 n 个物品的各自 体积。 输出 一个整数,表示箱子剩余空间。 2 样例输入 24 6 8 3 12 7 9 7 样例输出 0 。 3 【问题分析】 状态: f[i,j] 代表前 i 个物体装在 j 重的包里的最优解 方程: f[i,j]=max(f[i-1,j],f[i-1,j-a[i]); 4 【程序实现】 5 【例题 2 】宝石手镯( usaco ) 问题描述: 贝茜在珠宝店闲逛时,买到了一个中意的手镯。很自 然地,她想从她收集的 N(1 = N = 3,402) 块宝石中 选出最好的那些镶在手镯上。对于第 i 块宝石,它的重 量为 W_i(1 = W_i = 400) ,并且贝茜知道它在镶上 手镯后能为自己增加的魅力值 D_i(1 = D_i = 100) 。由于贝茜只能忍受重量不超过 M(1 = M = 12,880) 的手镯,她可能无法把所有喜欢的宝石都镶上 。于是贝茜找到了你,告诉了你她所有宝石的属性以 及她能忍受的重量,希望你能帮她计算一下,按照最 合理的方案镶嵌宝石的话,她的魅力值最多能增加多 少。 6 【输入格式】 输入的第一行有两个整数 N(1 = N = 3,402) 和 M(1 = M = 12,880) ,接下来的 N 行每行两个整数,分别表示宝石 重量和魅力值。 【输出格式】 输出只包括一行,这一行只包含一个整数,表示魅力值最多 能增加多少。 【样例输入】 3 70 71 100 69 1 1 2 【样例输出】 3 7 【问题分析】 状态: f[i,j] 代表前 i 个宝石戴在 j 重的手上获得的最大魅力 值 方程: f[i,j]=max(f[i-1,j],f[i-1,j-a[i])+b[i]; 8 【程序实现】 9 【例题 3 】奶牛打工 问题描述: 奶牛 Bassie 去 DQ 打工,遇到一个客人给了一张好大面 值的钞票,于是 Bassie 不得不为了给这位顾客找零而面 对这样一个问题:现在店里一共有 n 种硬币,对这些不 同种的硬币进行编号,编号为 i 的硬币面值为 a[i] 。因 为奶牛的手指头是有限的,因此他只能向你求助啦。 ( 已知总需找零数为 total)(1=total=1000,1=n=1000,1=a[i]=3 00) 求一共有多少种解决方案? 10 【输入格式】 第一行为硬币总值 total 和硬币种类数 n 。 以下 n 行为数值 a[i] , i=1,2,3...n 【输出格式】 一行,解决方案数 【样例输入】 83 5 50 25 10 5 1 【样例输出】 159 11 0 x 50 0 x 25 0 x 10 0 x 5 83 x 1 0 x 50 0 x 25 0 x 10 1 x 5 78 x 1 0 x 50 0 x 25 0 x 10 2 x 5 73 x 1 0 x 50 0 x 25 0 x 10 3 x 5 68 x 1 0 x 50 0 x 25 0 x 10 4 x 5 63 x 1 0 x 50 0 x 25 0 x 10 5 x 5 58 x 1 0 x 50 0 x 25 0 x 10 6 x 5 53 x 1 0 x 50 0 x 25 0 x 10 7 x 5 48 x 1 0 x 50 0 x 25 0 x 10 8 x 5 43 x 1 0 x 50 0 x 25 0 x 10 9 x 5 38 x 1 0 x 50 0 x 25 0 x 10 10 x 5 33 x 1 0 x 50 0 x 25 0 x 10 11 x 5 28 x 1 0 x 50 0 x 25 0 x 10 12 x 5 23 x 1 0 x 50 0 x 25 0 x 10 13 x 5 18 x 1 0 x 50 0 x 25 0 x 10 14 x 5 13 x 1 【样例说明】 12 【问题分析】 状态: f[i] 代表面值为 i 的钱的换钱方案数 方程: f[i]=sum(f[i-a[k]])1=k=n; 13 【程序实现】 14 【

文档评论(0)

1亿VIP精品文档

相关文档