一个点TLE求调
查看原帖
一个点TLE求调
778382
wch666楼主2025/7/27 21:11
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 5;
int n, m;
int a[maxn];
map<int, int> lst, cnt;
map<int, bool> vis;
inline int countt(int x)
{
	int ans = 0;
	while(x)
	{
		ans++;
		x /= 10;
	}
	return ans;
}
int main()
{
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i];
		lst[a[i]] = i;
	}
	for(int i = 1; i <= n; i++)
	{
		if(!vis[a[i]])
		{
			vis[a[i]] = 1;
			cnt[i] = cnt[i - 1] + 1 + countt(a[i]);
		}
		else
			cnt[i] = cnt[i - 1];
	}
	for(int i = 1; i <= m; i++)
		printf("%d ", cnt[lst[i]] - 1);
	return 0;
}

2025/7/27 21:11
加载中...