题解归档 - cf343A

题解归档 - cf343A

本文由 cf-code 本地题解库自动归档;公开内容以本地 AC/验证版本为准。

思路

cf343A — Rational Resistance

题意

单位电阻串联得 (R_e+1),并联得 (\dfrac{R_e}{R_e+1})(即分子分母 ((a,b)) 变为 ((a,a+b)))。求构造最简分数 (a/b) 所需最少电阻数。

做法

与辗转相除同构:

  • (a=b):1 个电阻。
  • (a>b):先串联 (a/b) 个,余数 (a\bmod b) 递归;整除则答案为 (a/b)。
  • (a<b):先并联 (b/a) 个,余数 (b\bmod a) 递归;整除则答案为 (b/a)。

例:(3/2) → 串联 1 + 并联 2 = 3;(199/200) → 并联 1 + 串联 199 = 200。

验证

样例 + stress.py cf343A -n 500(递归解 vs 迭代解交叉对拍)。

代码

来源:problems/cf343A/solution.cpp

/* Author: likely
 * Time: 2026-06-08 06:10:00
**/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll f(ll a,ll b){
    if(a==b) return 1;
    if(a>b){
        ll q=a/b;
        if(a%b==0) return q;
        return q+f(a%b,b);
    }
    ll q=b/a;
    if(b%a==0) return q;
    return q+f(a,b%a);
}
int main(){
    ll a,b;
    cin>>a>>b;
    cout<<f(a,b)<<endl;
    return 0;
}
~  ~  The   End  ~  ~


 赏 
感谢您的支持,我会继续努力哒!
支付宝收款码
tips
文章二维码 分类标签:归档TypechoAutoUpload
文章标题:题解归档 - cf343A
文章链接:https://www.fangshaonian.cn/archives/326/
最后编辑:2026 年 6 月 28 日 19:07 By 方少年
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
(*) 2 + 8 =
快来做第一个评论的人吧~