D. Concatenated Multiples[离线]

给你一个由 n 个正整数组成的数组 a

我们把数字 xy 的并集称为数字 xy 的并集,即把数字 xy 在不改变顺序的情况下一个接一个地写下所得到的数字。例如,数字 123456 的并集就是数字 123456

计算数组 (i,j)ij )中位置 (i,j)ij )的有序数对的个数。( ij ),使得数组 a 中的 aiaj 的连集能被 k 整除。


1n21052k109

n2显然是不行的

然后我们通过观察可以发现 ,当拼起来的俩数都是 k的倍数的时候 这个拼起来的数一定是 k的倍数

假设后面的X长度为l, X%k=t

那么 10l  可以O(n)的枚举

与之对应的可以枚举 位数,然后就可以得到对应的模数

然后我们用前缀和对应的思想 将这些模数的个数离线存储起来

便可以用 O(10nlogn)的复杂度解决了

本文作者:liangqianxing

本文链接:https://www.cnblogs.com/liangqianxing/p/17771049.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   liangqianxing  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起