#include #include <unordered_set> using namespace std;

unordered_set generateSet(int k) { unordered_set M; M.insert(k); for (int y : M) { M.insert(2 * y + 1); M.insert(3 * y + 1); } return M; }

bool isElementOfSet(int k, int x) { unordered_set M = generateSet(k); return M.count(x) > 0; }

int main() { int k, x; cin >> k >> x;

if (isElementOfSet(k, x)) {
    cout << "YES" << endl;
} else {
    cout << "NO" << endl;
}

return 0;
描述有一个集合M是这样生成的:1 已知k是集合M的元素; 2 如果y是M的元素那么2y+1和3y+1都是M的元素;3 除了上述二种情况外没有别的数能够成为M的一个元素。问题:任意给定k和x请判断x是否是M的元素。这里的k是无符号整数x 不大于 100000如果是则输出YES否则输出NO。输入描述输入整数 k 和 x 逗号间隔。输出描述如果是则输出 YES否则输出NO希望能用c++编写代码一定要正确

原文地址: https://www.cveoy.top/t/topic/iQ0B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录