1928: 最小表示法
题目描述
经过WC2008(Winter Camp)的洗礼,THtSC逐渐意识到“最小表示法”的重要性。她在解决“基于连通性的状态压缩动态规划”和“锅底与火焰间距可调的节能防风燃气锅架”等牛题上发挥着重要作用。
传说中的“最小表示法”其实很简单:
一群牛排成一列,牛们喜欢用一个数表示自己所在的团伙(Town Hall):
例如: 62 18 14 62 62 14 18 14 14 62
然后经过THtSC的程序,仅供参考:(这里假设牛们的编号为不超过10000的正整数)
program min_represent;
var
ap : array[1..10000]of longint;
i, now : longint;
begin
assign( input, 'rep.in' ); reset( input );
assign( output, 'rep.out' ); rewrite( output );
fillchar( ap, sizeof(ap), 0 );
i := 0;
while not eoln do begin
read( now );
if ap[now] = 0 then begin
inc( i );
ap[now] := i;
end;
write( ap[now], ' ' );
end;
writeln;
close( input ); close( output );
end.
就变成了:
1 2 3 1 1 3 2 3 3 1
现在请您求出:N只牛排成一列,最多可能有多少种不同的最小表示法?
输入
输入N(N<=500)
输出
最小表示法总数mod 62141
样例输入 复制
4
样例输出 复制
15
提示
【样例说明】
1111 1112 1121 1122 1123
1211 1212 1213 1221 1222
1223 1231 1232 1233 1234
【数据规模】
60%的数据,N<=20。