搜索算法个人总结pascal.docxVIP

  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. 10. 17 总结 (1-5题为今天重写一次, 其下所农示的提交次数为今夭重写的提交次数尹 其他 题提交次数为原来的次数, 部分不详, 题号前加星号表示未AC) 1?N皇后(位运算版) 这个是看了标程后写的很有意脛很巧廿的做冻,也很径大,一決wa,是因为 没写 inc (sum),。 ①《只输出结果数目) program quen; var kySum^ndongint; procedure dfs(rowjyr:longint); //row:列 I, r:两条对角线 pos^p:longint;beginif rowok thenbegin pos^p:longint; begin if rowok then begin pos:=k and not(l or r or row); while pos0 do begin p:=pos and(not pos +1); 皇后的地方 pos:=pos-p; II表示需要放皇后的的位子 II有皇后要放 ”取最右边的1 Up表示某个可以放上 II放上皇后 dfs(row+p,(l+p)shl l,(r+p)shr 1 ); H回溯,注意对角线的处理 end; end else inc(sum); end; begin II每一位都是1,目标状态 II每一位都是1,目标状态 ②《输出前3种方案,tyvj080) program quen{输出前3种解}; var k,sumji,i,t:longint; a:array[ 0.. 14]of longint; procedure dfs(dep,ro4r:longint); //dep: F=f )i6fr 层数row: b r:两条对角线 pos,p,i:longint; begin if depn then begin inc (sum); if sum=3 then begin for i:=l to n do write(a[i]/ ); writeln; end; end else begin for i:=l to n do begin p:=(l shl (i-1)); pos:-p and (row or I if(pos=0) I缺策有效 〃输出决策 n^i位是否可以放皇后 “二进制决策 r); //pos记录冲突 I般有冲突 then begin a[dep]:-i; II记录决策 dfs(dep+l,row + p,(l+p)shl l,(r+p)shr 1); 〃 下一层递归 end; end; end end; II每一位都是 II每一位都是l,目标状态 for i:-l to n do begin aUl:=; 〃初始化第一行,有n个状态 t:=l shl(i-l); shl lyt shr 1); end; writeln(sum); 2.计算细胞数 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上 下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。 如:阵列 0234500067 1034560500 2045600671 0000000089 有6个细胞 输入格天Input Format 第一行:两个数字MN (1 = 44 = 5OK=N8O) 示该阵列有At行7V列 从第2行到第M+ 7行每行有决续的N个字符 输出格?式 Output Format 一行:细胞个数 似乎我写出来的不是标准的捜奈…… 〃思路:以鈿胞中的一个点%起点,将他及他周圄的不为0的点都改% 0,然后 找下一个。 //提交情况:一次AC program tyvj 1127; var n,m,re:longint; a:array[l.. 100,1.. 100]of longint; procedure init; begin assign(input/ty vj 1127.in1); assign(output/ty vj 1127.ouf); reset(input); rewrite(output); end; procedure change(ij:longint); var kj:longint; begin a[i,j]:=O; if il then if a[i-l,j]0 then change(i-l,j); if a[i+l,j]0 then change(i+l,j); if jl then if a[i,j-l]0 then change(i,j-l); if a[iJ+lJ0 then change(i,j+l); end; procedure prepare; var i,j:longint; k:char; begin readln(n,m); for

文档评论(0)

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

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

1亿VIP精品文档

相关文档