AcWing 2068. 整数拼接 难!!!
作者:
cyuyu
,
2022-03-02 19:04:41
,
所有人可见
,
阅读 186
数论内容
代码:
#include<iostream>
#include<cstring>
using namespace std;
int n,m;
const int N=1e5+10;
int a[11][N];
int s[N];
typedef long long ll;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>s[i];
}
for(int i=0;i<n;i++){
int t=s[i]%m;
for(int j=0;j<11;j++){
a[j][t]++;
t=t*10%m;
}
}
ll res=0;
for(int i=0;i<n;i++){
int t=s[i]%m;
int size=to_string(s[i]).size();
res+=a[size][(m-t)%m];
//cout<<res<<endl;
int r=t;
while(size--)
r=r*10%m;
if(r==(m-t)%m)
res--;
}
cout<<res<<endl;
return 0;
}