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

📄 ac1156.pas

📁 同济大学 Online在线题库 AC源代码合集 程序设计竞赛必看资料
💻 PAS
字号:
program tju1156;
const
  divisor=2005;
var
  a,b:array[1..3]of word;
  p,n,t:longint;
procedure merge(x,y,z:byte);
  begin
    t:=b[x]*b[y] mod divisor;
    a[z]:=(a[x]*a[y]+(p-1)*t) mod divisor;
    b[z]:=(a[x]*b[y]+b[x]*a[y]+(p-2)*t) mod divisor;
  end;
procedure cal(x,y:longint);
  begin
    if x=1 then begin
      a[y]:=0;b[y]:=1;
    end
    else if odd(x) then begin
      cal(x shr 1,y);
      merge(y,y,5-y);
      merge(5-y,1,y);
    end
    else begin
      cal(x shr 1,5-y);
      merge(5-y,5-y,y);
    end;
  end;
begin
  a[1]:=0;b[1]:=1;
  repeat
    read(p,n);
    cal(n,3);
    writeln(a[3]);
  until seekeof;
end.

⌨️ 快捷键说明

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