1717번 - 집합의 표현
다른 분 소스를 봐도 비슷한 것 같은데 왜 시간초과가 나는지 모르겠어요 ㅠㅠ
for (q = a; (p = parent[q]) >= 0; q = p); s = q; for (q = a; (p = parent[q]) >= 0; q = p) { parent[q] = s; }
이부분은 정점의 개수가 적은 트리의 루트가 큰 트리의 루트를 가리키도록 하려고 만들어서
더 시간을 줄이려고 만든건데
왜 시간이 초과되는지 모르겠습니다 ㅠㅠ
유니온 함수 부분이 좀 비효율적인거같습니다. 경로압축을 사용해보세요
댓글을 작성하려면 로그인해야 합니다.
jh1125kr 7년 전
다른 분 소스를 봐도 비슷한 것 같은데 왜 시간초과가 나는지 모르겠어요 ㅠㅠ
for (q = a; (p = parent[q]) >= 0; q = p);
s = q;
for (q = a; (p = parent[q]) >= 0; q = p)
{
parent[q] = s;
}
이부분은 정점의 개수가 적은 트리의 루트가 큰 트리의 루트를 가리키도록 하려고 만들어서
더 시간을 줄이려고 만든건데
왜 시간이 초과되는지 모르겠습니다 ㅠㅠ