11437번 - LCA
각각 노드의 조상을 벡터로 만들어서 부여한 뒤 마지막에 선형으로 탐색하는 방식으로 풀어보았습니다.
최대한 스택메모리를 아끼려고 전역변수도 사용해보았는데
채점 94% 즈음에서 메모리초과가 발생합니다..
vector를 100000개 이상 만들어서 발생하는걸까요?
메모리 초과 발생 이유를 잘 모르겠어서 질문 드려봅니다
unsigned short가 0 ~ 65535 를 표현하므로 int대신 쓰면 메모리 초과를 없앨수는 있습니다만 어차피 TLE를 받을 것 같습니다.
일단 parent에 조상의 vector를 모두 다 집어넣는거 자체가 사용하면 안되는 로직입니다. vector를 대입한다는건 결국 복사가 이루어져야 하므로 일직선으로 이루어진 트리에 대해 1+2+...(N-1)= O(N^2)번의 복사가 필요해요.
그렇군요!! 감사합니다 다른 방법을 생각해봐야겠어요
댓글을 작성하려면 로그인해야 합니다.
rkdgh98 3년 전
각각 노드의 조상을 벡터로 만들어서 부여한 뒤 마지막에 선형으로 탐색하는 방식으로 풀어보았습니다.
최대한 스택메모리를 아끼려고 전역변수도 사용해보았는데
채점 94% 즈음에서 메모리초과가 발생합니다..
vector를 100000개 이상 만들어서 발생하는걸까요?
메모리 초과 발생 이유를 잘 모르겠어서 질문 드려봅니다