- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
枚举与搜索讲稿
长沙市雅礼中学 朱全民;有关搜索的NOIP试题 ;简单枚举法;火柴棒等式 ;分析;枚举答案;侦探推理;分析;分析;分析;优化;现有一个棱长为n的立方体,可以分成n3个1*1*1的单位立方体。每个单位立方体都有一个整数值。n3个单位立方体的数和不会超过longint范围。现在要求在这个立方体找到一个包含完整单位立方体的长方体,使得该长方体内所有单位立方体的数和最大。
输入: n(1≤n≤20);n个n*n的数字矩阵,每个数字矩阵代表一层,每个数字代表一个单位立方体的整数值,-999≤单位立方体的整数值≤999
输出:长方体的数和;“简单”枚举过程;从减少重复计算入手;3、提取恰当的信息
上述考察实际上求出z轴坐标为z2的平面中矩形(x1,y1,x2,y2)的数和。我们将这个数和记为value(a)
value(A)=value(ABCD)+value(B)-value(BC)-value(BD)
这就启发我们用另一种方法表示立方体的信息:设rec[x,y,z]表示z轴坐标为z的水平面中矩形(1,1,x,y)的数和。
?
z轴坐标为z的水平面中左上角为(x1,y1)、右下角为(x2,y2)的矩阵的数和为rec[x2,y2,z]+ rec[x1,y1,z]-rec[x2,y1,z]-rec[x1,y2,z]
?;Rec数组可以在输入数据的同时计算
fillchar(rec,size(rec),0);{rec数组初始化}
for z←1 to n do {逐层输入信息}
for x←1 to n do {逐行输入z平面的信息}
for y←1 to n do {逐列输入z平面上x行的信息}
begin
read(map[x,y,z]); {输入z平面上(x,y)中的数}
if (x=1)and(y=1) {计算z平面上以(1,1)为左上角、(x,y)为右下角的矩形的数和}
then rec[1,1,z]←map[1,1,z]
else if y=1 then rec[x,y,z]←rec[x-1,n,z]+map[x,y,z]
else rec[x,y,z]←rec[x,y-1,z]+map[x,y,z];
end;{for}
这样,考察过程就可以改为
sum←sum+rec[x2,y2,z2]+rec[x1,y1,z2]-rec[x2,y1,z2]-rec[x1,y2,z2];
if sumbest then best←sum;
时间复杂度降为O(n6)。;;算法框架;深度优先搜索;深度搜索算法的几个重要因素;深度搜索的基本框架;N皇后问题;基本思想;算法基本框架;边界条件设置;程序;给出一个矩阵及一些国都名:
o k d u b l i n dublin
a l p g o c e v tokyo
r a s m u s m b london
o s l o n d o n rome
y i b l g l r c bonn
k r z u r i c h paris
o a i b x m u z oslo
t p q g l a m v lima
要求从这个矩阵中找出这些国都名,并输出它们的起始位置及方向。
;算法思想;Procedure Work(T,X,Y:Integer);
{搜索路径,T为国都名的字符位置,X,Y为当前搜索的坐标}
Var I : Integer;
Begin
If T=Length(S)+1 Then begin {搜索完,打印输出}
Out; exit end;
For I:=1 To 8 Do {八个方向进行搜索}
Begin
X:=X+Fx[I,1]; Y:=Y+Fx[I,2]; {坐标变化}
If (A[X,Y]=S[T])And(B[X,Y]) Then Begin
W:=W+Chr(I+48); {记录路径}
B[X,Y]:=False; {设置已经搜索}
Work(T+1,X,Y); {继续搜索下一个}
Delete(W,Length(W),1);{恢复原路径}
B[X,Y]:=True; {恢复标志}
您可能关注的文档
最近下载
- 老年妇科患者围手术期管理中国专家共识(2024年版).pptx VIP
- 2023《关于党的建设的重要思想》微党课精品课件.ppt VIP
- 老年妇科患者围手术期管理中国专家共识(2024版)解读PPT课件.pptx VIP
- 生态系统课件课件.ppt VIP
- 《西方艺术鉴赏》课件.ppt VIP
- 成人肠造口护理-2019中华护理学会团体标准.pptx VIP
- 上海市绿色社区创建状况调查和发展对策研究.pdf VIP
- 第一现场震撼世界的不朽影像黑镜头精选珍藏本 阿夏 285页.pdf VIP
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识2025解读-1.pptx
- 2024年国网新疆电力有限公司高校毕业生招聘450人(第二批)笔试参考题库附带答案详解.doc
文档评论(0)