Codeforces Round 885 (Div. 2) C. Vika and Price Tags
C. Vika and Price Tags
题意:
初始两串数列
思路:
这题实际上之前已经发过,但最近打牛客对这题有了新的理解,所以来记录一下。
让我们假设
仔细观察可以发现,
对于这种一个数不断地减去另一个数的形式,我们可以回想起,裴蜀定理得,
也即是说,对于
对于
对于
int cal(int a, int b){
if(a == 0){
return 0;
}
else if(b == 0){
return 1;
}
if(a >= b){
int t = a / b;
if(t % 2){
return cal(b, a % b) + 1 + (t - 1) / 2 * 3;
}
else{
return cal(a % b, b) + t / 2 * 3;
}
}
else{
return 1 + cal(b, abs(a - b));
}
}
void QAQ(){
int n;
cin >> n;
vector<int> a(n + 1), b(n + 1);
for(int i = 1; i <= n; i ++) cin >> a[i];
for(int i = 1; i <= n; i ++) cin >> b[i];
set<int> s;
for(int i = 1; i <= n; i ++){
if(a[i] == 0 && b[i] == 0) continue;
s.insert(cal(a[i], b[i]) % 3);
}
if(s.size() <= 1) cout << "YES" << endl;
else cout << "NO" << endl;
}
裴蜀定理得,
辗转相减只可能得到其 的若干倍(gcd辗转相除的原理)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】