网站大量收购闲置独家精品文档,联系QQ:2885784924

动态规划69274.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划69274.doc

NOIP动态规划相关内容 记忆划搜索 function dp():longint; begin if 被搜索过 then exit(); if 边界条件 then exit(maxlongint)/exit(-maxlongint)/exit(0); 枚举所有可能推出的状态 begin temp:4^的状态 如果比记录的更优,则更新 end; bool[J:=true; exit(f[]); end; 山寨vj 1004滑雪 由于拓扑关系不明显,故使川记忆化搜索 function dfs(x,y:longint):longint; var i:longint;temp:longint; begin if f[x,y]0 then exit(f[x,y]); for i:=l to 4 do begin temp:=0; if a[x,y]a[x+dx[i],y+dy[i]] then temp:=dfs(x+dx[i],y+dy[i])+1; if f[x,y]temp then f[x,y]:=temp; end; exit(f[x,y]); end; st 10200统计单同个数 function dfs2(i,j:longint):longint; //dfs2 表示 I,j 区间包含单词的个数 var maxn,k:longint; begin if i〉j then exit(0); if boolg[ij]=true then exit(g[ij]); maxn:=dfs2(i+l,j); for k:=l to n do if i+length(a[k])-l=j then if a[k]=copy(s,i,length(a[k])) then maxn:=max(maxn,dfs2(i+1,j)+1); gli,jj:=maxn; boolgli,jj:=true; exit(g[i,j]); end; function dfs(i,j:longint):longint; //dfs表示前i个字母分j个括号的最优解 var maxn,k:longint; begin if boolfi,j]=true then exit(f[i,j]); if j=0 then exit(O); maxn:=-maxlongint; for k:=j-l to i-1 do maxn:=max(maxn,dfs(k j-1 )+dfs2(k+1,i)); ffi,jl:=maxn; bool[i,j]:=true; exit(f[i,j]); end; st 10229特殊的DNA片段 表示I到j区间內需要添加的最优解 function dfs(i,j:longint):longint; var k,minx:longint; begin if i〉j then exit(0); if bool[i,j] then exit(f[i,j]); minx:=maxlongint; for k:=i toj-1 do minx:=min(minx,dfs(i,k)+dfs(k+l,j)); ifasm^A1) and (s[jl=T)) or (($[i]=T) and (s[j]=*A*)) or ((s[i]=,C,) and (s[j]=,G,)) or ((s[i]=G’)and (sljJ-C)) then minx:=min(minx,dfs(i+l,j-l)); minx:=min(minx,dfs(i+1,j)+1,dfs(i,j-1)+1); bool[i,j]:=true; f[ij]:=minx; exit(flijj); end; 数塔问题(1取方格数、数字三角形) f[i,j]表示从(1,1)走到(i,j)的最大(最小)权和 f[i,j]=max(f[i-l,j],f[i-l,j-l])+a[i,j] 数字三角形mod 100最大 procedure dfs(i,j:longint;k:longint); var maxn:longint; begin if bool[i,j,k]=true then exit; k:=(k+a[i,j]) mod 100; if i=n then begin if loans then ans:=k; exit; end; bool[i,j,k]:=true; dfs(i+l,j,k); dfs(i+l,j+l,k); end; 数字三角形必须经过定点 function dfs(i,j,k:longint):longint; var maxn:longint; begin if boolli,j,k] then exit⑼; bool[i,j,k]:=true; if

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档