#YHW304. 拆分数字

拆分数字

题目

  • 小张在古老数学遗迹中发现谜题,谜题给定整数 n 和 m,存在一类特殊数字形式为 3k3^k(k 是非负整数)。
  • 需要判断能否通过恰好 m 个这样的特殊数字相加,得到整数 n,也就是判断是否存在非负整数序列 k1,k2,…,kmk_1, k_2, …, k_m,使得 n=3k1+3k2+…+3kmn = 3^{k_1} + 3^{k_2} + … + 3^{k_m}。
  • 题目包含多个谜题,第一行输入正整数 T 表示谜题的个数,接下来 T 行,每行两个整数 n、m 分别表示一道谜题中的相关信息。

输入描述

  • 第一行输入一个正整数 T,代表谜题数量。
  • 之后的 T 行中,每行包含两个整数 n 和 m,用于描述每道谜题的具体条件。

输出描述

  • 输出共 T 行,针对每一道谜题,如果能通过恰好 m 个特殊数字相加得到 n,则输出 Yes,否则输出 No。

示例 1

  • 输入:

    4
    5 3
    17 2
    163 79
    1000000000 1000000000
    
  • 输出:

    Yes
    No
    Yes
    Yes
    
  • 解释:

    • 对于第一个测试案例(5 3), 5=30+30+315 = 3^0 + 3^0 + 3^1,0、0、1 能满足等式,输出 Yes。
    • 对于第二个测试案例(17 2),不能找到 k1、k2k_1、k_2 使得 17=3k1+3k217 = 3^{k_1} + 3^{k_2},输出 No。
  • 数据范围与提示

  • 对于30%30\%的数据,n ≤\le 10,m ≤\le 5

  • 对于另外30%30\%的数据,n ≤\le 1000,m ≤\le 2

  • 对于100%100\%的数据,1≤m≤n≤109,1≤T≤1051 \le m \le n \le 10^{9}, 1 \le T \le 10^{5}