BRONZE5 포스팅하기 귀찮아서 생뚱맞게플로우컴 풀이를 올립니다;;
플로우컵은 기하를 주제로 한 대회입니다.
문제가 한 문제 빼고 경시기하 개념을 정확히 알고 있으면 티어에 비해 굉장히 쉬었을 것입니다.(물론 삼각형 해커 문제는 개념을 알아도 좀 억지스럽고 귀찮은 부분이 없지 않아 있습니다.)
그럼 풀이 시작하겠습니다.
A. 원의 분할
개념: 방멱 정리
개념 쓰면 끝나는 정말 쉬운 문제입니다.
소스 코드도 1줄...(숏코딩을 해서 그럽니다만 그래도 입력과 출력밖에 없습니다)(다른 문제들도 죄다 1줄...)
main(a,b,c){scanf("%d%d%d",&a,&b,&c);printf("%f",(a*c)/(double)b);}
B. 컵라면 측정하기
개념: 피타고라스의 정리
간.단.
main(k,a,b){scanf("%d%d%d",&k,&a,&b);printf("%f",k*k-(b-a)*(b-a)/4.0);}
C. 외심과 내심은 사랑입니다
개념: 오일러의 정리
혹시나 모르시는 분들 있을까봐 공식 첨부합니다.
d^2=R(R−2r)
수식 첨부 기능을 못 찾아서 식을 더럽게 올렸습니다 죄송합니다
그리고 이 문제는 난이도가 플래 3인데요, 경시 기하를 알면 브론즈급 문제가 됩니다.
경험치 꿀빨기 좋은 문제입니다 ㅎ(플로우컵은 다 이런 문제죠 ㅋㅋㅋ)
main(){long long a,b;scanf("%lld%lld",&a,&b);printf("%lld",a*(a-2*b));}
D. 원 전문가 진우
개념: 루리에의 정리
1/r = 1/r1+1/r2+1/r3
이 정리는 잘 알려지지 않은 정리인 것 같네요..
하지만 방심 공부를 하게 되면 배우는 정리이므로 기억해 두면 좋습니다.
이 문제 역시 경험치 꿀빨았습니다
main(a,b,c){scanf("%d%d%d",&a,&b,&c);printf("%f",1/(1.0/a+1.0/b+1.0/c));}
E. 한 점에서 만나라!
개념: 체바의 정리
체바의 정리는 너무 쉬워서 공식 첨부 안합니다
모르시면 인터넷에 찾아보세요(정리, 응용문제가 수없이 많이 나옵니다)
수식 길이 봐라
main(a,b,c,x,y){scanf("%d %d %d\n%d %d",&a,&b,&c,&x,&y);printf("%lf",(double)(b*(c-x)*(a-y)*1.0/(x*y*1.0+(c-x)*(a-y)*1.0)));}
F. 접시 안의 원
개념: 피타고라스의 정리
main(n){scanf("%d",&n);printf("%d",n*n/4);}
G. 작도하자! -(1)
개념: 나비 정리
main(n,m){scanf("%d %d",&n,&m);printf("%.1lf",(n-m*2)/2.0);}
H. 작도하자! -(2)
개념: 각의 이등분선 정리
main(a,b){scanf("%d %d",&a, &b);printf("%lf",a/(b*1.0));}
I. 운동장 한 바퀴
개념: 개념따윈 없다 걍 풀자(굳이 개념을 쓰자면 덧셈과 곱셈입니다)(어머나 파이값도 필요하구나)
main(a,b){scanf("%d%d",&a,&b);printf("%f",a*2+2*b*3.141592);}
J. 말 타기
개념: 스튜어트 정리
스튜어트 정리는 활용도는 낮은 정리입니다(문제를 풀 때 차수가 높아져서 계산이 어려워집니다)
main(a,b,c,m,n){scanf("%d%d%d\n%d",&a,&b,&c,&m);n=b-m;printf("%lf",(double)(((c*c*m+a*a*n)*1.0/b*1.0)-m*n*1.0));}
K. 피카츄가 낸 어려운 문제
개념: 삼각형의 성질 이용해서 적당히 식을 정리하면... 됩니다.
main(){long long a,b;scanf("%lld%lld",&a,&b);printf("%lld",(long long int)(a*a*b));}
L. 삼각형 해커
개념: 헤론의 공식, 사인 정리, 내접원의 반지름으로 넓이를 구하는 공식, 오일러 정리, 피타고라스의 정리, 유효숫자, 런타임 에러를 피할 수 있는 방법
완전 더러움 그 자체의 문제입니다 ㄷㄷ
파이썬으로 짜면 쉽지만 저는 C++로 짰습니다.(파이썬을 아주 잘하지 않아서,,)
코드가 메모리를 많이 써서 맞은 사람이나 숏코딩 페이지에 올라가지는 못했네요.
#include<bits/stdc++.h>
using namespace std;
int main(){
long double a, b, c;
cin >> a >> b >> c;
long double p=(a+b+c)/2,S=sqrt(p*(p-a)*(p-b)*(p-c)),R=(a*b*c)/(4*S),r=sqrt(((p-a)*(p-b)*(p-c))/p),d=sqrt(R*(R-2*r)),k=R+r;
cout << fixed;
cout.precision(18);
cout << S << '\n' << R << '\n' << r << '\n' << d << '\n' << k << '\n';
}
M. 외계인의 침투
개념: 원주각의 성질, 정삼각형을 이용한 식 변형
main(a,b){scanf("%d %d",&a,&b);printf("%d",a*a-b*b);}
전체적으로 문제는 쉬웠지만 삼각형 해커에서 욕이 나옵니다.
그래도 경시기하를 연습할 수 있는 문제들이니 한번 풀어보는 것은 좋을 듯 합니다.
즐코하세요!
'baekjoon 문제풀이' 카테고리의 다른 글
제 1회 구데기컵 풀이(푼 문제만) (0) | 2020.09.05 |
---|