bzoj2456

时间:2021-11-04 04:30:32

有趣的题目

空间1mb,所以开数组的算法就不要想了(我一开始没看到……)

仔细读题,然后发现这里他限定众数为出现超过n div 2次

也就是说,这个数可以对应每一个不相同的数消掉,最终还剩下这个数

也就是说,我们遍历,遇到不相同的就两两抵消,最终剩下的一定是ans

得解,

 var n,i,s,ans,x:longint;
begin
  readln(n);
  s:=;
  for i:= to n do
  begin
    read(x);
    if (s=) then
    begin
      inc(s);
      ans:=x;
    end
    else if ans=x then inc(s)
    else dec(s);
  end;
  writeln(ans);
end.

我需要锻炼思维能力,恩恩