您的位置:首页 > 其它

机器翻译(noip2010)

2014-09-20 16:02 127 查看
分析:该题是经典的队列题目,直接用队列实现就可以。如果数据范围大一些的话还可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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: