回 帖 发 新 帖 刷新版面

主题:NOIP2005  的  答案

[em18]
   本人参加NOIP2005复赛,不知各位赛友答案如何?我得了200多分,但第3题我认为是对的,不知各位赛友答案如何?请上贴!

回复列表 (共10个回复)

沙发

那欢迎到我们学校来参加冬令营啊!

板凳

?????????

3 楼

拜托,我才小学

4 楼

你是哪儿的??

5 楼

第三题 其实就是冒泡

6 楼

第三题,动态

7 楼

上海普及:var
  a           : array[0..1000] of longint;
  t,m,i,j,x,y : longint;

begin
  assign(input,'medic.in'); reset(input);
  assign(output,'medic.out'); rewrite(output);
  readln(t,m);
  fillchar(a,sizeof(a),0);
  for i := 1 to m do begin
    readln(x,y);
    for j := t-x downto 0 do
      if a[j]+y > a[j+x] then a[j+x] := a[j]+y;
  end;
  writeln(a[t]);
  close(input); close(output);
end.

8 楼

上海提高:const
  max = 50000;
var
  a,t        : array[0..max] of longint;
  b          : array[1..max,1..2] of longint;
  i,k,n,maxn : longint;

procedure p_end;
begin
  close(input); close(output); halt;
end;

begin
  assign(input,'fire.in'); reset(input);
  assign(output,'fire.out'); rewrite(output);
  readln(n);
  for i := 1 to n do readln(b[i,1],b[i,2]);
  a[0] := 1; k := 1;
  for i := 1 to n do begin
    a[i] := b[a[i-1],k];
    if b[a[i],1] = a[i-1]
      then k := 2
      else if b[a[i],2] = a[i-1]
             then k := 1
             else begin writeln(-1); p_end; end;
    if (i < n) and (a[i] = 1) then begin writeln(-1); p_end; end;
  end;
  if a[n] <> 1 then begin writeln(-1); p_end; end;
  fillchar(t,sizeof(t),0);
  for i := 1 to n do inc(t[(a[i]-i+n)mod n]);
  maxn := 0;
  for i := 0 to n-1 do if t[i] > maxn then maxn := t[i];
  fillchar(t,sizeof(t),0);
  for i := 1 to n do inc(t[(a[i]+i)mod n]);
  for i := 0 to n-1 do if t[i] > maxn then maxn := t[i];
  writeln(n-maxn);
  p_end;
end.

9 楼

有回吗

10 楼


能说说题目吗?我没有考试耶!

我来回复

您尚未登录,请登录后再回复。点此登录或注册