【题7】邮票面值的设计.docxVIP

  • 11
  • 0
  • 约1.98千字
  • 约 4页
  • 2021-12-03 发布于河北
  • 举报
PAGE PAGE #/ 4 【题 7】邮票面值的设计 给定一个信封,最多只允许粘贴 n张邮票,计算在给定k(n+kw20)邮票的 情况下(假设所有的邮票数量足够),如何设计邮票面值,能得到最大值 max,使在1 ~max之间的每一枚邮票值都能得到: 输入: N K 输出: 第一行为K个数,分别表示K种邮票面值 第二行为 max 题解 .数据结构设now——面值序列。其中now[i]为第i种面值。各面值按递增 顺序排列,长度为P(0PK)can —序歹U。其中can[i]为邮资i得到的标志, 邮资最大值为 maxn(0 i maxn)answebest 最佳方案。其中 answer[i]为最佳 方案中第i种面值(1 w i有蝎到连续邮资的最大值为best; .加入一枚邮票 往当前邮资序列can[o] ?? can[maxn]加入一枚邮票,形成一个新的邮资序列 can 0由于该枚邮票的面值可能有 P种(now[1] ?? now[p]),因此,分别将这P种 面值加入到目前存在的每一种邮资上: can [j+now[i]]=tru e can[j]=true , 1 w i 李{0j maxn 显然新邮资的最大值为 maxn+now[p] 。 procedure get(p, var maxn); {计算所有邮资加入一枚邮票后得到的邮资序 列。返回邮资最大值 maxn}

文档评论(0)

1亿VIP精品文档

相关文档