信息学竞赛3-9动态规划.pptVIP

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息学竞赛3-9动态规划

最长非降子序列 47,36,52,46,45,28,46,69,14,42 对给定的正整数序列,从序列中删除若干个数字,使剩下的组成非降子序列。求最长的非降子序列 最长非降子序列 设数组a[n]和b[n], a[n]表示数字序列 b[i]表示第i个数字到最后一位数字的最长非降子序列长度。 明显:b[n-1]=1 最长非降子序列 最长非降子序列 最长非降子序列 最长非降子序列 找到b[n]最大值 从左到右,找到max(b[n]), max(b[n])-1, max(b[n])-2,…,1 最长非降子序列 最长序列= 4 36 46 46 69 最长非降子序列 递推关系 对于0≤ijn, 找到a[j]≥a[i] 且b[j]=max(b[j],b[j+1],…, b[n-1]) b[i]=max(b[j], b[j+1],…, b[n-1])+1 边界条件:b[n-1]=1; 数字三角形的最优路径 如下示出了一个数字三角形 请编一个程序计算从顶至底的一条路径,使该路径所经过的数字的总和最大。  ●每一步可沿下方或右斜线向下走;  ●1<三角形行数≤100;  ●三角形中的数字为整数0,1,…99; 数字三角形的最优路径 数字三角形的最优路径——最大值 设结构和a数组相同的b数组 bij表示点i,j到底的最大路径 数字三角形的最优路径——最大值 设结构和a数组相同的b数组 bij表示点i,j到底的最大路径 数字三角形 Input 输入第1行是目标数字,第2行是三角形的行数N。以后的N行分别是从最顶层到最底层的每一层中的数字。 Output 输出仅有一行包含一个整数(表示要求的最大总和)。 数字三角形 Sample Input 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 Sample Output 30 数字三角形的最优路径——最小值 设结构和a数组相同的b数组 bij表示点i,j到底的最小路径 边值矩形的最优路径 边值矩形的最优路径 一个n行n列的边值矩形,每个点可向右或向下两个方向选择 求左上角到右下角的路径中,所经过数值和最大的路径 边值矩形的最优路径 r54表示横线边值 c45表示竖线边值 aij表示点ij到右下角的路径最大值 边值矩形的最优路径 边值矩形的最优路径 边值矩形的最优路径 a34的值等于a44+c34和a35+r34的较大值 a34 =Max(a44+c34,a35+r34) 边值矩形的最优路径 a44的值等于a54+c44和a45+r44的较大值 a44 =Max(a54+c44,a45+r44) 边值矩形的最优路径 边界条件:a55=0 a54=a55+r54 a45=a55+c45 buy low,buy lower “逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀: 逢低吸纳,越低越买 这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。 给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能买几次股票。 buy low,buy lower 以下面这个表为例, 某几天的股价是: 这个例子中, 聪明的投资者(按上面的定义),如果每次买股票时的股价都比上一次买时低,那么他最多能买4次股票。一种买法如下(可能有其他的买法): 天数 2 5 6 10 股价 69 68 64 62 buy low,buy lower Input 第1行: N (1 = N = 5000), 表示能买股票的天数。 第2行以下: N个正整数 (可能分多行) ,第i个正整数表示第i天的股价. 这些正整数大小不会超过longint Output 输出只有一行,输出两个整数: * 能够买进股票的天数 * 长度达到这个值的股票购买方案数量 在计算解的数量的时候,如果两个解所组成的字符串相同,那么这样的两个解被认为是相同的(只能算做一个解)。因此,两个不同的购买方案可能产生同一个字符串,这样只能计算一次。 buy low,buy lower Sample Input 12 68 69 54 64 68 64 70 67 78 62 98 87 Sample Output 4 2 回文词 回文词是一种对称的字符串——也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是写一个程序,求出将给定字符串变成回文词所需插入的最少字符数。 比如字符串“Ab3bd”,在插入两个字符后可以变成一个回文词(“dAb3

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档