D - Another Sigma Problem(ABC)

思路:我们可以处理一个后缀来记录当前数ai需要乘上多少(类似于1110这样的),然后对于当前位来说,对答案的贡献还要加上(i - 1) * ai,因为ai还要做前(i - 1)个数的后缀。

代码:

cpp 复制代码
#include <bits/stdc++.h>
#define INF 1000000000
#define LINF 1000000000000000000
#define MOD 1000000007
#define mod 998244353
#define F first
#define S second
#define ll long long
#define N 200010
using namespace std;
ll n,a[N],sz[N],tot[20],pw[N];
int main(){
	ll i,j;
	pw[0]=1;
	for(i=1;i<N;i++)
	{
		pw[i]=(pw[i-1]*10)%mod;
	}
	scanf("%lld",&n);
	for(i=0;i<n;i++)
	{
		scanf("%lld",&a[i]);
		ll x=a[i];
		while(x)
		{
			sz[i]++;
			x/=10;
		}
	}
	ll ans=0;
	for(i=n-1;i>=0;i--)
	{
		ll val=i;
		for(j=0;j<=10;j++)
		{
			val=(val+tot[j]*pw[j])%mod;
		}
		ans=(ans+(a[i]%mod)*val)%mod;
		tot[sz[i]]++;
	}
	printf("%lld\n",ans);
	return 0;
}
相关推荐
重生之小比特5 分钟前
【算法拾光】滑动窗口|长度最小的子数组 + 无重复字符的最长子串
算法
weixin_3077791311 分钟前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab
雪落漂泊15 分钟前
C++算法:双指针篇(下)
数据结构·c++·算法
生态学者10 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台
lsswear10 小时前
Agent 框架新手入门与实战部署指南
大数据·人工智能·算法
Data analyse45612 小时前
rnweb 回放数据量太大怎么办?分片存储与断点续传的实现思路
前端·网络·算法·数据分析
Navigator_Z13 小时前
LeetCode //C - 1293. Shortest Path in a Grid with Obstacles Elimination
c语言·算法·leetcode
Nil20814 小时前
leetcode 64最小路径和
算法·leetcode·职场和发展
光影少年14 小时前
AI Agent、自动化与未来工作
人工智能·算法·架构
牧羊人.33314 小时前
计算机视觉基础 第16章|EigenFace,FisherFace,LBPH传统人脸识别算法
人工智能·算法·计算机视觉