⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 team selection2.pas

📁 acm 国家集训队论文,对ACM爱好者很有用
💻 PAS
字号:
const
  maxn=524688;
var
  er:array[0..20]of longint;
  z,n:longint;
  p1:array[1..maxn]of longint;
  q2,q3:array[1..maxn]of longint;
  t:array[1..maxn*2]of longint;
procedure init;
  var
    j,a:longint;
  begin
    er[0]:=1;
    for j:=1 to 20 do
      er[j]:=er[j-1]*2;
    readln(n);
    for j:=1 to 20 do
      if n<=er[j] then
        begin
          z:=j;
          break;
        end;
    for j:=1 to n do
      read(p1[j]);
    for j:=1 to n do
      begin
        read(a);
        q2[a]:=j;
      end;
    for j:=1 to n do
      begin
        read(a);
        q3[a]:=j;
      end;
  end;
procedure main;
  var
    s,i,x,j,k,l,p:longint;
  begin
    fillchar(t,sizeof(t),0);
    s:=n;
    for i:=1 to n do
      begin
        k:=q3[p1[i]];
        l:=q2[p1[i]];
        for j:=z downto 0 do
          begin
            p:=er[j]-1+k;
            if (t[p]=0)or(t[p]>l)
              then t[p]:=l;
            if not odd(k)
              then if (t[p-1]<>0)and(t[p-1]<l)
                then begin
                  dec(s);
                  break;
                end;
            k:=(k+1) div 2;
          end;
      end;
    writeln(s);
  end;
begin
//  assign(input,'team.in');
//  reset(input);
  init;
  main;
//  close(input);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -