codeforce343A

1341 단어 code
제목 주소: http://codeforces.com/problemset/problem/343/A
경기 할 때 멘 붕 이 왔 습 니 다. a < b 만 내 놓 을 때 최소 b 개의 저항 이 필요 합 니 다.
나중에 문 제 를 보고 알 았 다.
 
제목: 최소한 의 1 Ω 저항 으로 지정 한 저항 값 (a/b) 저항 을 조합 합 니 다. 소자 간 에 직렬 또는 병렬 로 연결 할 수 있 습 니 다.
사고: 분명히 저항 이 작 을 수록 a/b 의 정수 부분 은 몇 개의 1 오 메 가 저항 을 연결 하여 해결 할 수 있다. 이때 이런 중요 한 결론 이 있다. 만약 에 최소 K 개의 저항 으로 a/b 오 메 가 저항 을 구성 하면 b/a 도 K 개 (모든 직렬 연결 관 계 를 바 꾸 면 된다) 가 필요 하 다. 따라서 이때 b > a 는 a, b 의 값 을 교환 하고 지난 절 차 를 반복 해 야 한다.
 
내 가 물리 지식 이 너무 약 한 건 가?
 
cf 용int64.
 
#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

using namespace std;



typedef long long LL;



int main()

{

    __int64 a, b;

    while(scanf("%I64d%I64d",&a, &b) != EOF)

    {

        __int64 ans = 0;

        while(true)

        {

            if(a/b >= 1)

            {

                ans += a/b;

                a -= b*(a/b);

                if(a%b == 0)

                   break;

            }

            else

            {

                swap(a, b);

            }

        }

        printf("%I64d
",ans); } return 0; }

 
 

좋은 웹페이지 즐겨찾기