B. Plus and Multiply 构造分析
发布时间
阅读量:
阅读量
个人认为如果不靠猜测的话这道题要想很久才能解答出来吧?但是由于题目难度较大,在a的幂次上思考时经常会忘记这个点从而能够猜对答案。
下面看一下我怎么理清这题关系的。
题目指出该数源于数字1。其中包含两个关键参数:乘因子mu和加量a。
为了便于分析和简化计算过程, 我们先随机写出一个较为复杂的表达式: ((mu*(1+a)+a)mu +a)mu.
接下来对其进行展开化简:
mu^3 + mu^2a + amu^2 + a*mu.
观察可知, 无论初始表达式多么复杂, 由于所有数值均源自基础数值1,
因此必然存在至少一项不含a参与运算的情况。
将此无a项移除之后, 结果要么为空, 要么仍含有与a相关联的项。
//
// Created by SANZONG on 2021/7/14.
//
#include "bits/stdc++.h"
#define int long long
using namespace std;
//int a[40000];
signed main() {
int T;
cin >> T;
while (T--)
{
int n,a,b;
cin >> n >> a >> b;
if (a == 1 || b == 1)
{
if ((n - 1) % b == 0) cout << "Yes" << endl;
else
cout << "No" << endl;
} else{
int t = 1;
while (t <= n)
{
if ((n - t) % b == 0) {
cout << "Yes" << endl;
break;
}
t *= a;
}
if ( t > n) cout << "No" << endl;
}
}
}
全部评论 (0)
还没有任何评论哟~
