首页 > 代码库 > 机器翻译(noip2010)

机器翻译(noip2010)

分析:该题是经典的队列题目,直接用队列实现就可以。如果数据范围大一些的话还可hash判重!

        这可以说是一道送分的题目,但是还有粗心的学生会在这里失分,主要原因是数组的范围定义的不合适,因为空间足够用,在考试中数据范围要稍大一些。当然还有个别同学是因为模拟失误了,这种送分题目我只能说,一定要多对拍几组特殊数据,保证得满分才好!

var  m,n,sum:longint;  q:array[0..1000] of longint;  head,tail:longint;  procedure init;  var bo:boolean;  i,j,x:longint;  begin    readln(m,n);    head:=0;tail:=0; sum:=0;    for i:=1 to n do      begin        bo:=false;        read(x);        for j:=head+1 to   tail do          if q[j]=x then            begin   bo:=true;   break; end;        if not bo  then          begin            if  tail-head>=M then  inc(head);            inc(tail);  q[tail]:=x;inc(sum);          end      end;      writeln(sum);  end;begin  assign(input,translate.in);reset(input);  assign(output,translate.out); rewrite(output);  init;  close(input); close(output);end.
View Code

 

机器翻译(noip2010)