其他分享
首页 > 其他分享> > [CF1478B] Nezzar and Lucky Number - 结论

[CF1478B] Nezzar and Lucky Number - 结论

作者:互联网

[CF1478B] Nezzar and Lucky Number - 结论

Description

给定正整数 \(d(1\le d\le 9)\),如果正整数 \(k\) 的十进制表示中含有数码 \(d\),我们就把 \(k\) 称为“幸运数”。现在,给你一个长度为 \(q(1\le q\le 10^{4})\) 的数组 \(a_{1},a_{2},…,a_{q}(1\le a_{i}\le 10^{9})\),请依次判断数组的每个元素能否表示为若干个“幸运数”之和的形式,如果能,输出 YES,否则输出 NO

Solution

虽然难度低但还是有点意思的

如果一个数大于等于 10d,那么疯狂拆 d,直到它在 10d~11d-1 之间,这个也是有 d 的

一个含 d 的数,一定可以拆成若干个 d 和若干个 10

反过来,任何一个含有若干个 d 和若干个 10 的数都可以组成一个所要求的,可以分解为若干个幸运数之和的数

所以对于小于 10d 的,我们只需要判断,是否可以通过若干个 10 和若干个 d 组成这个数即可。

#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main()
{
    int t;
    cin >> t;

    while (t--)
    {
        int n, d;
        cin >> n >> d;

        while (n--)
        {
            int x;
            cin >> x;

            if (x >= 10 * d)
                cout << "YES" << endl;
            else
            {
                int flag = 0;
                for (int i = 1; i <= 9; i++)
                {
                    if (x - i * d >= 0 && (x - i * d) % 10 == 0)
                    {
                        flag = 1;
                    }
                }
                cout << (flag ? "YES" : "NO") << endl;
            }
        }
    }
}

标签:Nezzar,10,le,int,Lucky,10d,cin,CF1478B,若干个
来源: https://www.cnblogs.com/mollnn/p/14460155.html