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(R2r)

수식 첨부 기능을 못 찾아서 식을 더럽게 올렸습니다 죄송합니다

그리고 이 문제는 난이도가 플래 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

+ Recent posts