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