13546번 - 수열과 쿼리 4
일단 코드일부분을 올렸습니다 참고해 주세요.
주요 로직은 간단하게 말씀드리면(kks227님 블로그 설명이랑 같습니다)
평방분할로 쿼리 정렬후 모스 알고리즘으로 구간 추가하고 빼면서
|x-y| 값들을 cnt 배열에 갱신하고 평방분할해서 bucket 배열에도 갱신해놓고
result 배열에다 결과를 위치 찾아가지고 기록했습니다.
궁금한 점은 첨부한 코드를 하면 40프로에서 틀렸습니다(런타임에러 X)를 받는데
seq.resize(N+1); cnt.assign(N+2, 0); seq_cnt.assign(K+2, list{});
를
seq.resize(101000); cnt.assign(101000, 0); seq_cnt.assign(101000, list{});
으로 바꾼 코드에서는 정답 처리 받았습니다.
로직상 코드에서 할당한 크기는 문제 없다고 생각했는데 결과는 다르네요.어느 부분에서 문제가 되는 걸까요??
댓글을 작성하려면 로그인해야 합니다.
zerowest1001 3년 전
일단 코드일부분을 올렸습니다 참고해 주세요.
주요 로직은 간단하게 말씀드리면(kks227님 블로그 설명이랑 같습니다)
평방분할로 쿼리 정렬후 모스 알고리즘으로 구간 추가하고 빼면서
|x-y| 값들을 cnt 배열에 갱신하고 평방분할해서 bucket 배열에도 갱신해놓고
result 배열에다 결과를 위치 찾아가지고 기록했습니다.
궁금한 점은 첨부한 코드를 하면 40프로에서 틀렸습니다(런타임에러 X)를 받는데
seq.resize(N+1);
cnt.assign(N+2, 0);
seq_cnt.assign(K+2, list{});
를
seq.resize(101000);
cnt.assign(101000, 0);
seq_cnt.assign(101000, list{});
으로 바꾼 코드에서는 정답 처리 받았습니다.
로직상 코드에서 할당한 크기는 문제 없다고 생각했는데 결과는 다르네요.어느 부분에서 문제가 되는 걸까요??