na982   6년 전

세그먼트 트리 연습하고 있어서; 세그먼트 트리로 n log n으로 풀어볼려고 했는데;

타임아웃 되네요; 제가 구현하고 있는 segment 트리가 느린건가요? 아니면 다른 문제가 있는건가요??;;;

pl0892029   6년 전

MAX를 매크로가 아닌 함수로 변경해보세요~

na982   6년 전

변경하니까 ac가 되네요;

어떤게 차이가 있어서 그런거죠?;; 신기하네요~

ghdic   4년 전

안녕하세요 2년전의 나구팔이님 매크로로 작성시 아래부분의 코드가 값을 얻기 위해 range함수를 반복하여 호출되게 됩니다. 인자값을 넘겨주고 연산하는 방식이 아니기 때문이죠~

#define MAX(a, b) (((a) < (b)) ? (b) : (a))

MAX(range(left, right, node * 2, node_left, mid), range(left, right, node * 2 + 1, mid, node_right));

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