PKU2084 Game of Connections [1AC][08.08.22]

 
Run IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time
3948135slxg2084Accepted1324K32MSPascal1366B2008-08-22 15:26:22

直接推出公式:

f [n]=sigma(f[n-1-i]*f[i])  (0<=i<=n-1)

据说是 catalan 数

然后就好了~

注意要用高精度~

然后编了一个 挺漂亮 的 运算符重载:

  1. operator *(a,b:arr) c:arr;
  2.   var
  3.     i,j:integer;
  4.   begin
  5.     fillchar(c,sizeof(c),0);
  6.     c[-1]:=a[-1]+b[-1]-1;
  7.     for i:=0 to a[-1do begin
  8.       for j:=0 to b[-1do c[i+j]:=c[i+j]+a[i]*b[j];
  9.       for j:=0 to c[-1do begin
  10.         inc(c[j+1],c[j] div 10000);
  11.         c[j]:=c[j] mod 10000;
  12.       end;
  13.     end;
  14.     if c[c[-1]+1]<>0 then inc(c[-1]);
  15.   end;
  16. operator + (a,b:arr) c:arr;
  17.   var
  18.     i:integer;
  19.     j:longint;
  20.   begin
  21.     fillchar(c,sizeof(c),0);
  22.     if a[-1]>b[-1then c[-1]:=a[-1else c[-1]:=b[-1];
  23.     j:=0;
  24.     for i:=0 to c[-1do begin
  25.       j:=j+a[i]+b[i];
  26.       c[i]:=j mod 10000;
  27.       j:=j div 10000;
  28.     end;
  29.     if j<>0 then begin
  30.       inc(c[-1]);
  31.       c[c[-1]]:=j;
  32.     end;
  33.   end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值