leo5469   4년 전

끝나는날 기준으로 대회를 돌면서 막을수 있는건 모두 막게끔 구현을 했는데 제가 생각하는 예제는 모두 맞게 나오는데 답은 틀렸다고 나오네요.

ucpc 예선 공식 풀이에선 segment tree를 이용한다고 하는데 꼭 그렇게 해야하는지, 그렇다면 제 구현은 뭐가 틀렸고 왜 꼭 segment tree를 써야하는지 알려주시면 감사하겠습니다 고수님덜 ㅠㅠ.

풀이 링크

https://drive.google.com/file/d/1lEkJ4sW5s2bD8SXHh2nYVp8MgXf2nkNg/view

evenharder   4년 전

45번째 줄 밑으로 진행되는 로직이 시간 복잡도 상으로도, 알고리즘 측면에서도 문제입니다.

시간 복잡도상으로는 최악의 경우 O(NK)일 수 있기 때문에, 시간 초과를 면치 못합니다. 때문에 C++의 경우 std::set 등의 자료구조 사용이 필요할 수 있습니다.

알고리즘 측면에서는, es[tk] < con[i].s인 사람 중 es[tk]가 최대인 사람을 뽑아야 합니다. 이건 반례를 보시는 게 좋을 것 같습니다.

evenharder   4년 전

'예제 출력'이 '예제 입력'으로 오타가 났습니다. 참고해주세요.

leo5469   4년 전

우와 진짜 감사합니다! ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.