递归和深搜的简单练习题目.docVIP

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

解题报告 2011年1月26日 总结概括 读题时间:8:38-8:50; 时间:8:50-11:35 提交次数:4 难度:★★★★☆ 总体评价:递推,我的弱项 第一题 题意描述:超级书架 2 [Neal Wu, 2007] Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此 的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留 有一点空间。 所有N(1 = N = 20)头奶牛都有一个确定的身高H_i (1 = H_i = 1,000,000 - 好高的奶牛_)。设所有奶牛身高的和为S。书架的高度为B,并且保证1 = B = S。 为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不象演杂技一般, 一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中 所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书 架的高度。 塔叠得越高便越不稳定,于是奶牛们希望找到一种方案,使得叠出的塔在高 度不小于书架高度的情况下,高度尽可能小。你也可以猜到你的任务了:写一个 程序,计算奶牛们叠成的塔在满足要求的情况下,最少要比书架高多少。 程序名: shelf2 输入格式* 第1行: 2个用空格隔开的整数:N 和 B * 第2..N+1行: 第i+1行是1个整数:H_i 输入样例 (shelf2.in): 5 16 3 1 3 5 6 【输出格式* 第1行: 输出1个非负整数,即奶牛们叠成的塔最少比书架高的高度 输出样例 (shelf2.out): 1 输出说明: 我们选用奶牛1、3、4、5叠成塔,她们的总高度为3 + 3 + 5 + 6 = 17。任何方案都无法叠出高度为16的塔,于是答案为1。 program ex01; const inf=shelf2.in; ouf=shelf2.out; var n,b,i,j,tot,l,r,min:longint; h:array[1..30] of longint; f:array[1..30] of boolean; procedure dd(k:longint); var i:longint; begin if kn then exit; for i:=k+1 to n do if f[i] then begin tot:=tot+h[i]; if tot=b then begin if tot-bmin then min:=tot-b; end else begin f[i]:=false; dd(i);//继续找...... f[i]:=true; end; tot:=tot-h[i]; end; end; begin assign(input,inf);reset(input); assign(output,ouf);rewrite(output); fillchar(f,sizeof(f),true); readln(n,b); for i:=1 to n do readln(h[i]); min:=maxlongint; for i:=1 to n do//先找出来比b大的数,进行标记和比较 begin if h[i]b then begin if h[i]-bmin then min:=h[i]-b; f[i]:=false; end; end; dd(0);//原来写的是1,但是深搜里面的写的是dd(i),所以果断不过 writeln(min); close(input);close(output); end. 最终评测 设计数据:无 提交次数:2 第一次:贪心,7组 评价:简单的搜索,只用判断两个,用或者不用 第二题 题意描述:flowerb 【题目描述】 ?农夫John出去砍伐,让N头牛在草地上吃草。当他回来时吃惊的看到这些牛

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档