讨论 / 为什么只过了3个?
lzx131416 2008-11-04 04:52:00
点我顶贴 收藏 删除
测试结果1: 通过本测试点|有效耗时171:ms

测试结果2: 通过本测试点|有效耗时63:ms

测试结果3: 通过本测试点|有效耗时63:ms

测试结果4: 测试结果错误.错误结果为:14

正确结果应为:10

测试结果5: 测试结果错误.错误结果为:13

正确结果应为:11

测试结果6: 测试结果错误.错误结果为:78

正确结果应为:75

测试结果7: 测试结果错误.错误结果为:82

正确结果应为:77

测试结果8: 测试结果错误.错误结果为:84

正确结果应为:76

测试结果9: 测试结果错误.错误结果为:80

正确结果应为:74

测试结果10: 测试结果错误.错误结果为:81

正确结果应为:78

program a123;

var a,f,x:array[1..100]of integer;

b,c,i,j,n:integer;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do x[i]:=0;

for i:=1 to n do f[i]:=1;

x[1]:=0; x[2]:=1;

for b:=3 to n do

begin

for i:=1 to b do f[i]:=1;

for i:=2 to b-1 do

for j:=1 to i-1 do

if (a[i]>=a[j])and(f[j]+1>f[i]) then f[i]:=f[j]+1;

for i:=1 to b-1 do if (x[b]<f[i])and(a[b]>=a[i]) then x[b]:=f[i];

end;

x[n]:=x[n]+1; x[n-1]:=x[n-1]+2;

for b:=1 to n-2 do

begin

for i:=b to n do f[i]:=1;

for i:=b+2 to n do

for j:=b+1 to i-1 do

if (a[i]<=a[j])and(f[j+1]>f[i]) then f[i]:=f[j]+1;

c:=0;

for i:=b+1 to n do if (c<f[i])and(a[b]>=a[i]) then c:=f[i];

x[b]:=x[b]+c+1;

end;

c:=0;

for i:=1 to n do if x[i]>c then c:=x[i];

c:=n-c;

writeln(c);

end.

#1 lzx131416@2008-11-04 04:52:00
回复 删除
已通过

program a123;

var a,f,x:array[1..100]of integer;

b,c,i,j,n:integer;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do x[i]:=0;

for i:=1 to n do f[i]:=1;

x[1]:=0;

if a[2]>a[1] then x[2]:=1;

for b:=3 to n do

begin

for i:=1 to b do f[i]:=1;

for i:=2 to b-1 do

for j:=1 to i-1 do

if (a[i]>a[j])and(f[j]+1>f[i]) then f[i]:=f[j]+1;

for i:=1 to b-1 do if (x[b]<f[i])and(a[b]>a[i]) then x[b]:=f[i];

end;

x[n]:=x[n]+1; if a[n-1]<a[n] then x[n-1]:=x[n-1]+2;

for b:=1 to n-2 do

begin

for i:=b to n do f[i]:=1;

for i:=b+2 to n do

for j:=b+1 to i-1 do

if (a[i]<a[j])and(f[j]+1>f[i]) then f[i]:=f[j]+1;

c:=0;

for i:=b+1 to n do if (c<f[i])and(a[b]>a[i]) then c:=f[i];

x[b]:=x[b]+c+1;

end;

c:=0;

for i:=1 to n do if x[i]>c then c:=x[i];

c:=n-c;

writeln(c);

end.

查看更多回复
提交回复