专栏文章

题解:CF552C Vanya and Scales

CF552C题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqqwglm
此快照首次捕获于
2025/12/04 09:16
3 个月前
此快照最后确认于
2025/12/04 09:16
3 个月前
查看原文

题目传送门

相当于问你能否将 mm 拆成奇特的 nn 进制是每一位是 11001-1
然后就用进制转换的方法拆分。
先对 nn 取余。
如果余 00 ,直接继续。
如果余 11 ,那么 m=m1m = m - 1
如果余 1-1,那么 m=m+1m = m+1
否则,输出 NO。
换下一位:m=m÷nm=m÷n

AC Code

CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
signed main(){
	cin>>n>>m;
	if(n==2){
		cout<<"YES\n";
		return 0;
	}
	while(m>0){
		int p=m%n;
		if(p==1){
			m--;
		}
		else if(p==n-1){
			m++;
		}
		else if(p!=0){
			cout<<"NO\n";
			return 0;
		}
		m/=n;
	}
	cout<<"YES\n";
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...