摆烂了,欢迎评论
ac代码
#include<bits/stdc++.h>
using namespace std;
int n,k;
long long int arr[100010][15],low[100010][15];
long long int cnt;
int get(int x) {//获得整数的位数
int n=0;
while(x) {
x/=10;
n++;
}
return n;
}
int main() {
cin >> n >> k;
for(int i=0; i<n; i++) {
cin >> arr[i][0];
low[arr[i][0]%k][get(arr[i][0])]++;//具有相同余数,位数的数量增加
}
for(int i=0; i<n; i++)
for(int j=1; j<=11; j++) {
arr[i][j]=arr[i][0]%k*(long long int)pow(10,j)%k;//arr[i][j]为arr[i][0]*10^j的余数
cnt+=low[(k-arr[i][j])%k][j];//a[i][0]在高位,则低位为余数为k-arr[i][j]%k且位数为j的数
if((arr[i][0]%k==(k-arr[i][j])%k)&&get(arr[i][0])==j) cnt--;//如果包含a[i][0]自身,则减去
}
cout << cnt;
return 0;
}
作者:心之所向_素履以往
链接:https://www.acwing.com/activity/content/code/content/3615396/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。