早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一个有关取余数的问题DP中原来的方程应该是fori:=1toqdoforj:=0tondofork:=0tondoforu:=0tondoforv:=0tondoifcan[u,v]thenf[i,j,k]:=f[i,j,k]+f[i-1,j,u]*f[i-1,v,k];ans:=0;foru:=0tokindoforv:=0tokindoans:=ans+f

题目详情
一个有关取余数的问题
DP中原来的方程应该是
for i:=1 to q do
for j:=0 to n do
for k:=0 to n do
for u:=0 to n do
for v:=0 to n do
if can[u,v] then f[i,j,k]:=f[i,j,k]+f[i-1,j,u]*f[i-1,v,k];
ans:=0;
for u:=0 to kin do
for v:=0 to kin do
ans:=ans+f[q,u,v];
而题目的结果很大,要求对p取余,然后我每一步都取余,像这样
if can[u,v] then f[i,j,k]:=(f[i,j,k]+f[i-1,j,u]*f[i-1,v,k])mod p
ans:=(ans+f[x,u,v])mod p;
总之是错了,大牛说要高精度算出来再取余.
问下这样做为什么不行?顺便求些有关余数的论文结论什么的.
▼优质解答
答案和解析
z