사람이 나를 저녁 식사에가는 길에 this problem다이내믹 프로그래밍 문제가
을위한 최적의 동적 프로그래밍 알고리즘을 찾을 수는 CCC의 경쟁은 맛있는 곱슬 감자 튀김을 위해 일렬로 늘어서있다. N (1 ≤ N ≤ 100) 명의 경쟁자는 카페테리아에 들어가기 위해 단일 파일을 정렬했습니다.
CCC를 운영하는 Doctor V는 프로그래머가 다른 언어를 사용하는 프로그래머 옆에 선 서서 단순히 싫어한다는 것을 깨달았습니다. 고맙게도 CCC에서는 Gnold와 Helpfile의 두 가지 언어 만 허용됩니다. 또한, 경쟁자들은 적어도 K (1 ≤ K ≤ 6) 명의 경쟁자 그룹에 속할 경우에만 카페테리아에 입장 할 것이라고 결정했습니다.
* He will find a group of K or more competitors who use the same language standing next to each other in line and send them to dinner.
* The remaining competitors will close the gap, potentially putting similar-language competitors together.
그래서 의사 V가 당신을 위해 경쟁사의 순서를 기록했다
박사 V는 다음과 같은 방식을 반복하기로 결정했다. 모든 경쟁자가 식사를 할 수 있습니까? 그렇다면 저녁에 보내는 경쟁사 그룹의 최소 수는 얼마입니까? 첫 번째 라인은 두 정수를 포함
입력 N 및 K. 번째 행은 하나의 행에서의 경쟁 (H는 G가 Gnold를 나타내고, HELPFILE를 나타낸다) 출력
출력 시퀀스이다 N자를 포함 줄, 저녁 식사를 위해 형성되는 그룹의 최소 숫자 인 단일 숫자. 모든 프로그래머가 식사를 할 수없는 경우 -1을 출력합니다.
답변을 원할 경우 적절하게 질문에 태그를 지정해야합니다. '속임수 '는 매우 의미없는 태그입니다. –
예 동적 프로그래밍을 추가하려고했지만 거부했습니다. – GEP
@kletoskletos - 여기서 동적 프로그래밍을 사용해야하는 이유가 있습니까? 우리는 Helpfile 프로그래머의 숫자와 Gnold 프로그래머의 숫자가 주어지기 때문에 Doctor V가 지정한 그룹 번호로 숫자를 나눌 수 있습니다. 두 그룹의 나머지 프로그래머는 이미 형성된 그룹에 추가되어야하므로 ' 6 명을 초과 할 수 없습니다. 다이내믹 한 프로그래밍이 생겨난다고 생각합니다. 재미있는 문제. –