10개의 댓글이 있습니다.
-
-
wookayin -
넵, 말씀하신대로
std::set
의 동등성 비교에서는operator ==
를 쓰지 않기 때문에 입실론 처리를 해주어야 합니다. 하지만 (std::set
에서 요구되는) 엄밀하게는,operator <
가 지켜야 하는 strict weak ordering 성질에는 transitivity 가 있습니다. 즉,a==b
이고b==c
이면a==c
여야 하는데, epsilon이 들어가면 이게 참이 아니죠. 그래서std::set
의 동작이 여전히 잘못될 가능성은 있습니다.실제로 입실론을 조절하다보면 맞을 수도 있어서 이런 케이스가 드물긴 하겠지만.. 조심해야 하는 부분이라 코멘트 남겨봅니다~
9년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
restart
재하의 장난감를 풀고 있는데요, 계속된 WA에 알고리즘상 문제인지 알고 싶어서 질문합니다ㅠ
문제를 간단히 설명하자면 3\le N\le100개의 점이 주어지고, P_{i}와 P_{i+1}…, P_N과 P_1을 이어서 생기는 면적 0이상의 내부공간을 세는 문젠데요..
간단히 선분 교점들로 이루어진 planar graph를 구성하고 Euler's formula를 적용하면 될 것 같은데 구현상에 애로사항이 꽃피네요..
제 알고리즘은 다음과 같습니다.
1에서는 pair<double, double>의 set유지가 되는가 하는 precision문제가 있을 것 같으나.. x, y범위가 \le100이라 큰 상관은 없을 것 같은데... ㅠㅠ제가 놓친 예외가 있는 걸까요?ㅠㅠ
9년 전