[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