社区讨论
这一道题目输出要注意什么吗?
P4573[CQOI2013] 新数独参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mi6z5po1
- 此快照首次捕获于
- 2025/11/20 13:12 4 个月前
- 此快照最后确认于
- 2025/11/20 13:12 4 个月前
如题,为什么我提交了,但最后显示‘wrong answer Too short on line 1. 得分0’并且全部WA
PASCALvar
h,l:array[0..9,0..9] of char;
a:array[0..9,0..9] of longint;
i,w,j:longint;
c:char;
hh,ll,ww:array[0..9,0..9] of boolean;
procedure hread(k:longint);
var s:string;
begin
readln(s);
h[k,1]:=s[1];h[k,2]:=s[3];
h[k,4]:=s[5];h[k,5]:=s[7];
h[k,7]:=s[9];h[k,8]:=s[11];
end;
procedure lread(k:longint);
var
s:string;
u:longint;
begin
readln(s);
for u:=1 to 9 do
l[k,u]:=s[u*2-1];
end;
function bj(u,v:longint;c:char):boolean;
begin
if (c='>') or (c='v') then
if u>v then exit(true) else exit(false);
if (c='<') or (c='^') then
if u<v then exit(true) else exit(false);
end;
function check(x,y,z:longint):boolean;
var p,q:longint;
begin
if y mod 3<>1 then
if not bj(a[x,y-1],z,h[x,y-1]) then exit(false);
if x mod 3<>1 then
if not bj(a[x-1,y],z,l[x-1,y]) then exit(false);
exit(true);
end;
procedure out;
var p,q:longint;
begin
for p:=1 to 9 do
begin
for q:=1 to 9 do
write(a[p,q],' ');
writeln;
end;
end;
procedure dfs(i,j:longint);
var p:longint;
begin
//writeln(i,' ',j);
if i=10 then begin out;halt;end;
if j=10 then begin dfs(i+1,1);exit;end;
for p:=1 to 9 do
begin
if (not hh[i,p]) and (not ll[p,j]) and (not ww[(i-1) div 3*3+(j-1) div 3+1,p]) and (check(i,j,p)) then
begin
a[i,j]:=p;
hh[i,p]:=true;
ll[p,j]:=true;
ww[(i-1) div 3*3+(j-1) div 3+1,p]:=true;
dfs(i,j+1);
hh[i,p]:=false;
ll[p,j]:=false;
ww[(i-1) div 3*3+(j-1) div 3+1,p]:=false;
a[i,j]:=0;
end
end;
end;
begin
for i:=1 to 3 do
begin
w:=i*3-2;hread(w);
w:=i*3-2;lread(w);
w:=i*3-1;hread(w);
w:=i*3-1;lread(w);
w:=i*3;hread(w);
end;
fillchar(a,sizeof(a),0);
dfs(1,1);
end.
回复
共 0 条回复,欢迎继续交流。
正在加载回复...