/ Vijos / 讨论 / 分享 /

笨笨进来一下。

关于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 条评论

  • @ 2009-08-08 21:29:08

    没为什么~

    因为你没有一直MOD

  • @ 2009-08-08 21:18:38

    我错了。。。没事没事了。。。

  • 1