状态: Unaccepted
测评机: Xeost[5]
得分: 20分
提交日期: 2009-5-2 11:07:00
有效耗时: 234毫秒
测试结果1: 选手程序无输出
测试结果2: 测试结果错误.错误结果为:3
1
2
4
正确结果应为:4
1
2
4
5
测试结果3: 通过本测试点|有效耗时62ms
测试结果4: 测试结果错误.错误结果为:3
2
3
4
正确结果应为:4
2
3
4
5
测试结果5: 测试结果错误.错误结果为:5
1
2
3
4
6
正确结果应为:8
1
2
3
4
5
6
7
8
测试结果6: 输出过少|用户输出数据少于标准输出的50%[标准输出189位|选手输出16位]
测试结果7: 输出过少|用户输出数据少于标准输出的50%[标准输出185位|选手输出16位]
测试结果8: 输出过少|用户输出数据少于标准输出的50%[标准输出174位|选手输出10位]
测试结果9: 通过本测试点|有效耗时172ms
测试结果10: 输出过少|用户输出数据少于标准输出的50%[标准输出820位|选手输出13位]
提交代码:
program rq458wish(input,output);
var i,j,k,n :longint;
meet :array [1..1000,1..1000] of boolean;
beat :array [1..500,1..500] of boolean;
g :array [1..500] of longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(k);
if k=1 then
begin
beat[i,j]:=true;
beat[i+n,j]:=true;
beat[i,j+n]:=true;
beat[i+n,j+n]:=true;
end
else
begin
beat[i,j]:=false;
beat[i+n,j]:=false;
beat[i,j+n]:=false;
beat[i+n,j+n]:=false;
end;
end;
readln;
end;
for i:=1 to n*2 do
for j:=1 to n*2 do
meet[i,j]:=false;
for i:=1 to 2*n-1 do
meet[i,i+1]:=true;
for j:=2 to n do
for i:=1 to n do
for k:=i+1 to i+j-1 do
meet[i,i+j]:=meet[i,i+j] or ((meet[i,k] and meet[k,i+j]) and (beat[i,k] or not beat[k,i+j]));
j:=0;
for i:=1 to n do
if meet[i,i+n] then
begin
inc(j);
g[j]:=i;
end;
writeln(j);
for i:=1 to j-1 do
writeln(g[i]);
write(g[j]);
end.
嗯
为什么按照wish的标准题解不能AC呢?
测评机: Xeost[5]
得分: 20分
提交日期: 2009-5-2 12:14:00
有效耗时: 234毫秒
测试结果1: 输出过少|用户输出数据少于标准输出的50%[标准输出2385位|选手输出22位]
测试结果2: 测试结果错误.错误结果为:3
1
2
4
正确结果应为:4
1
2
4
5
测试结果3: 通过本测试点|有效耗时62ms
测试结果4: 测试结果错误.错误结果为:3
2
3
4
正确结果应为:4
2
3
4
5
测试结果5: 测试结果错误.错误结果为:5
1
2
3
4
6
正确结果应为:8
1
2
3
4
5
6
7
8
测试结果6: 输出过少|用户输出数据少于标准输出的50%[标准输出189位|选手输出16位]
测试结果7: 输出过少|用户输出数据少于标准输出的50%[标准输出185位|选手输出16位]
测试结果8: 输出过少|用户输出数据少于标准输出的50%[标准输出174位|选手输出10位]
测试结果9: 通过本测试点|有效耗时172ms
测试结果10: 输出过少|用户输出数据少于标准输出的50%[标准输出820位|选手输出13位]
提交代码: program rq458wish(input,output);
var i,j,k,n :longint;
meet :array [1..10000,1..10000] of boolean;
beat :array [1..10000,1..10000] of boolean;
g :array [1..10000] of longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(k);
if k=1 then
begin
beat[i,j]:=true;
beat[i+n,j]:=true;
beat[i,j+n]:=true;
beat[i+n,j+n]:=true;
end
else
begin
beat[i,j]:=false;
beat[i+n,j]:=false;
beat[i,j+n]:=false;
beat[i+n,j+n]:=false;
end;
end;
readln;
end;
for i:=1 to n*2 do
for j:=1 to n*2 do
meet[i,j]:=false;
for i:=1 to 2*n-1 do
meet[i,i+1]:=true;
for j:=1 to n do
for i:=1 to n do
for k:=i+1 to i+j-1 do
meet[i,i+j]:=meet[i,i+j] or ((meet[i,k] and meet[k,i+j]) and (beat[i,k] or not beat[k,i+j]));
j:=0;
for i:=1 to n do
if meet[i,i+n] then
begin
inc(j);
g[j]:=i;
end;
writeln(j);
for i:=1 to j-1 do
writeln(g[i]);
write(g[j]);
end.
可是改过后还是诡异的20...
n, ss: LONGINT;
a, b: ARRAY[1..1000, 1..1000] OF BOOLEAN;
PROCEDURE init;
VAR
i, j, k: LONGINT;
BEGIN
READ(n);
FOR i:=1 TO n DO
FOR j:=1 TO n DO BEGIN
READ(k);
b[i, j] := (k = 1);
b[i + n, j] := (k = 1);
b[i, j + n] := (k = 1);
b[i + n, j + n] := (k = 1);
END;
INC(n, n);
FOR i:=1 TO n DO BEGIN
FOR j:=1 TO n DO WRITE(b[i, j], ’ ’);
WRITELN;
END;
END;
PROCEDURE xxx;
VAR
i, x, j, k: LONGINT;
BEGIN
FOR i:=1 TO n - 1 DO a[i, i + 1] := TRUE;
FOR x:=2 TO n DIV 2 DO
FOR i:=1 TO n - x DO BEGIN
j := i + x;
a[i, j] := FALSE;
FOR k:=i + 1 TO j - 1 DO
a[i, j] := a[i, j] OR (a[i, k] AND a[k, j] AND (b[i, k] OR (NOT b[k, j])));
END;
ss := 0;
FOR i:=1 TO n DIV 2 DO
IF a[i, i + n DIV 2] THEN INC(ss);
END;
PROCEDURE pri;
VAR
i: LONGINT;
BEGIN
WRITELN(ss);
FOR i:=1 TO n DIV 2 DO
IF a[i, i + n DIV 2] THEN WRITELN(i);
END;
BEGIN
init;
xxx;
pri;
END.