Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

pascal的ac代码

Posted by hell_angel at 2011-06-27 11:15:48 on Problem 1925
{RE了N多次,后来发现原因之后我囧了。。。。}
var
  ii, i, j, k, n, test: longint;
  x, y: array[0..5001] of longint;
  dis, len, ans, tmp: longint;
  f: array[0..1000001] of longint;
  
function work(i: longint): longint;
var
  t, t1, t2: int64;
begin
  t := i;  
  t1 := t*t;  //就是这儿RE,一开始直接t1 := i*i,然后华丽丽的RE了
  t := i-y[1];
  t2 := t*t;
  t := trunc(sqrt(t1-t2));
  exit(t);
end;
  
begin
  readln(test);
  for ii := 1 to test do begin
    readln(n);
    for i := 1 to n do readln(x[i],y[i]);
    fillchar(f,sizeof(f),100);
    ans := maxlongint;
    tmp := f[1];
    f[x[1]] := 0;
    len := x[n];
    for i := 2 to n do begin
      dis := work(y[i]);
      for j := x[i]-dis to x[i]-1 do begin
        if (j>=0) and (2*x[i]-j<len) then
          if f[2*x[i]-j]>f[j]+1 then f[2*x[i]-j] := f[j]+1;
        if (j>=0) and (2*x[i]-j>=len) then
          if f[j]+1<ans then ans := f[j]+1;
      end;
    end;
    if ans>=tmp then ans := -1;
    writeln(ans);
  end;
end.
  

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator