rt
在编译器运行都正确,放洛谷上就不行了
#include<bits/stdc++.h>
#define L 1000005
#define P 130
using namespace std;
vector<long long> dp(P, 0);
vector<long long> dpa(P, 0);
vector<long long> dpb(P, 0);
int l, p, res = 0;
string s;
int main() {
cin >> p;
cin >> s;
l = s.length();
for (int i = 1; i <= l; i++){
int num = s[i - 1] - '0';
for (int j = 0; j < p; j++){
dp[j] += dpa[(p + j - num % p) % p];
if(num % p == j){
dp[j] ++;
}
dpb[j * 10 % p] += dp[j];
if(j == 0){
res += dp[j];
}
}
dpa = dpb;
dpb = vector<long long>(P, 0);
dp = vector<long long>(P, 0);
}
cout<<res;
return 0;
}