2011-11-14 3 views
0

나는 USACO의 동적 프로그래밍에 대한 질문이 있습니다. (컴퓨터 과학 학습).동적 프로그래밍 솔루션 - 해결 방법? (올바른 방향으로 나를 가리 키십시오)

질문 텍스트는 여기에 있습니다 : http://pastebin.com/MiJ5aEWc

나는이 최대 Inc의 서브 시퀀스 유사 수 있습니다 생각하지만, 누군가가 올바른 방향으로 날 지점 수 있습니까?

감사합니다.

+0

최근 시험에서 나온 내용입니까? – madth3

+0

아니, 나는 어제 생각한 청동 경쟁을했다. 그것은 정말로 쉬웠다! : D –

답변

0

예. O (n log n), 동적 프로그래밍 :
먼저 소를 x 좌표로 정렬하고 번식 유형을 정수 [1..k]로 매핑하십시오. (k < = n) : O (n log n)
dp [i] = j 번째 젖소부터 i 번째 돌까지 모든 번식이 나타나도록하는 최대 색인 j 또는 존재하지 않는 경우 -1.
각 k에 대해 dp [i] 암소 범위 [k, i]가 허용되고 i <j -> dp [i] < = dp [j]이므로 녹음을 통해 O (n)의 dp 부분을 풀 수 있습니다. 젖소 범위 [dp [i], i]에있는 각 유형의 소의 수.

+0

dp [i] range [d, i] 주위의 표기법과 혼동 스럽습니다. 그게 무슨 뜻인지 설명해 주시겠습니까? (어쩌면 해당 부분을 확장 할 수 있습니까?) –

+0

수정 됨; 허용 범위 [a, b]는 소의 범위가 모든 유형의 품종을 포함한다는 것을 의미합니다. –

+0

죄송합니다. 성가시다면 원할 경우 설명을 그만 둘 수 있습니다. 그러나 dp [i]가 최대 jth 암소와 같으므로 문안에서 "i dp [i] <= dp [j] ". 나는 k <= dp [i]에 관한 부분을 확실히 이해하고 있지만 for-loop 의사 코드를 가지고있다 (교수의 용어)? 엄청 고마워! –

관련 문제