比赛 |
HAOI2009 模拟试题3 |
评测结果 |
AAAAAAAAAA |
题目名称 |
诸侯安置 |
最终得分 |
100 |
用户昵称 |
ceeji |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2009-04-23 11:17:08 |
显示代码纯文本
- var i,j,k,n,l,s:longint;
- f:array[1..200,1..200] of longint;
- function make(p:longint):longint;
- begin
- if odd(p) then make:=p else make:=p-1;
- end;
- begin
- assign(input,'empire.in');reset(input);
- assign(output,'empire.out');rewrite(output);
- readln(n,k);
- if k=0 then begin writeln(1);close(output);halt
- end;
- if k>=2*n-1 then begin writeln(0);
- close(output);halt;
- end;
- for i:=1 to 2*n-1 do
- if odd(i) then f[i,1]:=i else f[i,1]:=i-1;
- for i:=1 to 2*n-1 do
- for j:=2 to i do
- for l:=1 to i-j+1 do
- f[i,j]:=(f[i,j]+f[i-l,j-1]*(make(i)-j+1)) mod 504;
- i:=2*n-1;
- if k=1 then begin writeln((i*(i+1) div 2-i div 2) mod 504);
- close(output);halt end else
- for i:=k to 2*n-1 do inc(s,f[i,k]);
- writeln(s mod 504);
- close(input);
- close(output);
- end.