• CodeForces D. Concatenated Multiples


    http://codeforces.com/contest/1029/problem/D

    You are given an array aa, consisting of nn positive integers.

    Let's call a concatenation of numbers xx and yy the number that is obtained by writing down numbers xx and yy one right after another without changing the order. For example, a concatenation of numbers 1212 and 34563456 is a number 123456123456.

    Count the number of ordered pairs of positions (i,j)(i,j) (iji≠j) in array aa such that the concatenation of aiai and ajaj is divisible by kk.

    Input

    The first line contains two integers nn and kk (1n21051≤n≤2⋅105, 2k1092≤k≤109).

    The second line contains nn integers a1,a2,,ana1,a2,…,an (1ai1091≤ai≤109).

    Output

    Print a single integer — the number of ordered pairs of positions (i,j)(i,j) (iji≠j) in array aa such that the concatenation of aiai and ajaj is divisible by kk.

    Examples
    input
    Copy
    6 11
    45 1 10 12 11 7
    output
    Copy
    7
    input
    Copy
    4 2
    2 78 4 10
    output
    Copy
    12
    input
    Copy
    5 2
    3 7 19 3 3
    output
    Copy
    0

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 2e5 + 10;
    int N, K;
    int num[maxn];
    map<long long, long long> mp[15];
    
    int main() {
        scanf("%d%d", &N, &K);
        for(int i = 1; i <= N; i ++) {
            scanf("%d", &num[i]);
            long long a = num[i];
            for(int j = 1; j <= 10; j ++) {
                a *= 10;
                a %= K;
                mp[j][a] ++;
            }
        }
        long long cnt = 0;
        for(int i = 1; i <= N; i ++) {
            int t = num[i] % K;
            int len = log10(num[i]) + 1;
            cnt += mp[len][(K - t) % K];
            long long x = 1;
            for(int j = 1; j <= len; j ++)
                x = (x * 10) % K;
            if(((num[i] * x) % K + num[i] % K) % K == 0)
                cnt --;
        }
        printf("%I64d
    ", cnt);
        return 0;
    }
    

      

  • 相关阅读:
    AS3 条件编译
    as3 中trace() 函数对效率的影响
    将as3代码转换成为js代码
    flash图标插件
    STAR面试法
    虚拟机window7与主机之间文件复制设置
    linux虚拟机网络设置好ping百度没有用
    Linux常用命令
    路由器wiff设置
    linux网络启动报错
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9822824.html
Copyright © 2020-2023  润新知