- 分享
- 2009-08-08 21:29:08 @
关于P1584即今天比赛第三题的一个问题。
var
f:array[0..200,0..200]of qword;
n,k,i,j:longint;
begin
while not eof do
begin
fillchar(f,sizeof(f),0);
readln(n,k);
f[0,1]:=1;
for i:=1 to n do
for j:=1 to k+1 do
f:=f*j+f*(i-j+1);
f[n,k+1]:=f[n,k+1] mod 2009;
writeln(f[n,k+1]);
end;
end.
这是我原来的程序。注意mod运算的位置。WA
var
f:array[0..200,0..200]of qword;
n,k,i,j:longint;
begin
while not eof do
begin
fillchar(f,sizeof(f),0);
readln(n,k);
f[0,1]:=1;
for i:=1 to n do
for j:=1 to k+1 do
f:=(f*j+f*(i-j+1)) mod 2009;
writeln(f[n,k+1]);
end;
end.
这是我后来的程序。mod运算换了个位置之后,AC
分别运算10 4这组数据。
第一个程序为486
第二个程序为199377
但是。我把两个mod都去掉之后
运算 10 4 这组数据。答案均为1310354
1310354 mod 2009=486 而且很明显的 什么数字mod2009之后会得到199377这个答案?
请笨笨给个解释,同时最好能重新评测。
2 条评论
-
fp_yfw LV 10 @ 2009-08-08 21:29:08
没为什么~
因为你没有一直MOD
-
2009-08-08 21:18:38@
我错了。。。没事没事了。。。
- 1