问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PASCAL八皇后问题

发布网友 发布时间:2024-11-06 10:02

我来回答

4个回答

热心网友 时间:2024-11-06 10:08

var
n,upperlim,sum:longint;
procedure test(row,ld,rd:longint);
var
pos,p:longint;
begin

if row<>upperlim then
begin
pos:=upperlim and not (row or ld or rd);
while pos<>0 do
begin
p:=pos and -pos;
pos:=pos-p;
test(row+p,(ld+p)shl 1,(rd+p)shr 1);
end;
end
else inc(sum);

end;
begin
readln(n);
sum:=0;
upperlim:=(1 shl n)-1;
test(0,0,0);
writeln(sum);
end.
位运算才是王道啊,用这个交usaco秒过

热心网友 时间:2024-11-06 10:13

这个正确,是n皇后问题,改改n就可以了
program hh;
const n=8;
var i,j,k:integer;
x:array[1..n] of integer;
function place(k:integer):boolean;
var i:integer;
begin
place:=true;
for i:=1 to k-1 do
if (x[i]=x[k]) or (abs(x[i]-x[k])=abs(i-k)) then
place:=false ;
end;
procedure print;
var i:integer;
begin
for i:=1 to n do write(x[i]:4);
writeln;
end;
begin
k:=1;x[k]:=0;
while k>0 do
begin
x[k]:=x[k]+1;
while (x[k]<=n) and (not place(k)) do x[k]:=x[k]+1;
if x[k]>n then k:=k-1
else if k=n then print
else begin k:=k+1;x[k]:=0 end
end ;

end.

热心网友 时间:2024-11-06 10:16

你不会?真垃圾!找找2008篇的《pascal语言教程练习》,里面有答案啊^_^不过说实在的,我也不会~_~!

o(∩_∩)o

热心网友 时间:2024-11-06 10:09

1楼,你似乎是没学过DFS吧!8皇后都不知道,n皇后是8皇后的拓展。

8皇后代码:

var x:array [1..8] of longint;
a,b,c:array [-7..16] of boolean;
i,o,tot:longint;

procedure dfs(i:longint);
var
j:longint;
begin
for j:=1 to 8 do
begin
if a[j] and b[i+j] and c[i-j] then
begin
x[i]:=j;
a[j]:=false;
b[i+j]:=false;
c[i-j]:=false;
if i<8 then dfs(i+1)
else inc(tot);
a[j]:=true;
b[i+j]:=true;
c[i-j]:=true;
end;
end;
end;

begin
fillchar(a,sizeof(a),true);
fillchar(b,sizeof(b),true);
fillchar(c,sizeof(c),true);
dfs(1);
writeln(tot)
end.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 用PASCAL语言解决八皇后问题~急!! 微信抱怨句子 《圆梦巨人》剧照 圆梦巨人里结局巨人不孤单吗?苏菲是被收养了吗?是一个梦吗? 《圆梦巨人》曝“灵活的巨人”特辑 还原巨人逼真形象 冒险岛洗血英雄2转要多少敏 关于机械波的频率、波速、波长,下列说法正确的是( ) 关于波长的下列说法中,正确的是 关于波长,下列说法中正确的是( ) 婴儿米粉什么牌子好? 婴儿米粉哪个牌子口碑最好?婴儿营养米粉品牌排行榜前十名推荐 书让人受益很大100字 有什么关于孟封饼的做法分享? 手机视频剪辑怎么去掉原有的字 请允许我满含泪水地回来主要内容是什么 请允许我满含泪水地回来 本文讲述了一个感动的故事,请简要概括本文故事... 卡思黛乐集团如何成为欧洲第一大葡萄酒生产商并享誉全球? 世界上共有多少个国家生产葡萄? 红酒产自哪个洲 不能货币化的例子有哪些 pascal语言 八皇后问题 哪位大神帮忙看下错误 给个八皇后 回溯 代码 谢... 英雄联盟按a键补兵好不好? 英雄联盟怎么补刀是右键还是a建 福建农林大学的学校代码是什么 福建农林大学学校代码是多少 福建农林大学学校代码及各专业代码是什么 1038哪个学校代码 福建农林大学院校代码 10370哪个学校 有关生活工作感悟经典句子的短句英语(《生活工作感悟》) 最有气质红对联 沙湖新石器文化遗址概述 上海自然博物馆获得标本 黑龙江小南山遗址出土数百件新石器时代早期文物 鸡蛋和红薯能同时吃吗鸡蛋和红薯能同时吃吗 4个月宝宝可以扶坐吗 宝宝四个月能扶着坐吗 四个月宝宝可以扶坐吗 四个月宝宝可以坐吗 温州安旅箱包配件有限公司怎么样?