BZOJ4421 : [Cerc2015] Digit Division

如果两个相邻的串可行,那么它们合并后一定可行,所以求出所有可行的串的个数$t$,则$ans=2^{t-1}$。

注意特判整个串不可行的情况,这个时候答案为0。

#include<cstdio>
int n,m,i,t,ans;char a[300010];
int main(){
for(scanf("%d%d%s",&n,&m,a);i<n;i++){
t=(t*10+a[i]-'0')%m;
if(!t)if(!ans)ans=1;else ans=ans*2%1000000007;
}
return printf("%d",t?0:ans),0;
}

  

上一篇:QT学习(打个广告)


下一篇:Delphi经验总结(2)