社区讨论

CE 求调

CF1029DConcatenated Multiples参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mibp7x5m
此快照首次捕获于
2025/11/23 20:33
3 个月前
此快照最后确认于
2025/11/23 21:20
3 个月前
查看原帖
CPP
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <unordered_map>
#define int __int128
using namespace std;
int T = 1,n,m,k,a[200005],b[200005],c[200005],gen[2000005];
string s,t[100005];
unordered_map<int,int>mp[20];
long long N;
void slove()
{
	int ans = 0;
	cin >> N,n = N;
	cin >> N,m = N;
	for(int i = 1;i <= n;i ++)
	{
		cin >> N,a[i] = N;gen[i] = 1;
		int dd = a[i],len = 0;
		while(dd > 0)
			len ++,dd /= 10,gen[i] *= 10;
		mp[len][a[i] % m] ++;
	}
	for(int i = 1;i <= n;i ++)
	{
		int cnt = 1;
		for(int j = 1;j <= 10;j ++)
		{
			cnt *= 10;
			int qe = a[i] * cnt % m;
			if(qe == 0)ans += mp[j][0];
			else ans += mp[j][m - qe];
		}
		if((gen[i] * a[i] % m + a[i] % m) % m == 0)ans --;
	} 
	cout << (long long)ans;
}
signed main()
{
	//cin >> T;
	while(T --)slove();
}
在AT的双倍经验是直接过了的,改了一点在这CE了,然而样例在AT的Custom Test能全过

回复

2 条回复,欢迎继续交流。

正在加载回复...