AC
TLE
两份代码中只有第21,22行,也就是
//for(int i=0;i<=ct;++i)res+=dfs(len-1,(rest*10+i)%mod,sit|(i>1 ? (1<<(i-2)) : 0),limit&&(i==ct));
//for(int i=0;i<=ct;++i)res+=dfs(len-1,(rest+i*pw[len-1]%mod)%mod,sit|(i>1 ? (1<<(i-2)) : 0),limit&&(i==ct));
这两句不同
而这两句也只有
(rest*10+i)%mod
(rest+i*pw[len-1]%mod)%mod
不同
但是AC代码比TLE的代码快了至少十倍,经过验证确实就是这一句话出了问题
而且我们经过一些优化,比如让TLE的代码只执行一次memset,AC代码仍旧比TLE的代码快两倍,而AC代码每次都要memset
求各位大佬解答