讨论 / 43 請教
b474908647 2009-09-11 18:41:00
点我顶贴 收藏 删除
状态: Unaccepted

测评机: Xeost[5]

得分: 0分

提交日期: 2008-11-18 21:33:00

有效耗时: 该状态没有记录

测试结果1: 测试结果错误.错误结果为:69931

正确结果应为:69638

测试结果2: 测试结果错误.错误结果为:99549

正确结果应为:99197

测试结果3: 测试结果错误.错误结果为:113898346

正确结果应为:113896295

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

正确结果应为:132270720

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

正确结果应为:182918598

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

正确结果应为:104020418

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

正确结果应为:41312477

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

正确结果应为:135781725

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

正确结果应为:109266854

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

正确结果应为:83581612

program p43;

var

sz1,sz2,sz3:array [1..10000] of longint;

n,m,i,j,k,min:longint;

s:real;

begin

readln(n,m);

readln(k);

for i:=1 to k do

readln(sz1[i],sz2[i]);

for i:=1 to 1000 do

sz3[i]:=1;

for i:=2 to k do

begin

for j:=i-1 downto 1 do

if ((sz1[i]>=sz1[j]) and (sz2[i]>=sz2[j])) and (sz3[i]<=sz3[j])

then sz3[i]:=sz3[j]+1;

end;

min:=-2147483647;

for i:=1 to k do

if sz3[i]>min

then min:=sz3[i];

s:=100*n+100*m;

s:=s-min*(200-sqrt(20000));

writeln(round(s));

readln;

end.

爲什麽答案是錯的啊

都差了一點點

我就是求最長不下降

然後每走一個斜的就比走直的少走200-sqrt(20000)

減一下

不知道爲什麽錯了

請各位牛們指點一下

#1 woshiniba@2008-11-18 20:42:00
回复 删除
蓝书上有标程…… 这就是半抄袭的……

program fly;

type

shortroad=record

x,y:longint;

end;

var

road:array [1..1000] of shortroad;

n,m,i,j,max,k:longint;

t:shortroad;

f:array [1..1000] of longint;

ans:real;

begin

readln(m,n);

readln(k);

for i:=1 to k do

read(road[i].x,road[i].y);

for i:=1 to k do

for j:=i to k do

if road[i].x>road[j].x

then begin

t:=road[i]; road[i]:=road[j]; road[j]:=t;

end;

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

for i:=1 to k do

for j:=1 to i-1 do

if (road[i].x>road[j].x) and (road[i].y>road[j].y) and (f[j]+1>f[i])

then f[i]:=f[j]+1;

max:=0;

for i:=1 to k do

if f[i]>max then max:=f[i];

ans:=(n+m-2*max)*100+max*sqrt(20000);

writeln(ans:0:0);

end.

#2 jww521@2009-09-11 18:29:00
回复 删除
同问?哪位大牛能讲一下?
#3 jww521@2009-09-11 18:41:00
回复 删除
问题也解决了,太高兴了;
查看更多回复
提交回复