UPO/8회: 두 판 사이의 차이
< UPO
리버티게임>Bd3076 (새 문서: UPO 8회 문제는 1일차와 2일차의 구분이 없습니다. 1회, 2회와 같은 협력 문제 형태로 진행될 것입니다. == 문제 == 'R'과 'U'만으로 이루어진...) |
리버티게임>Bd3076 편집 요약 없음 |
||
11번째 줄: | 11번째 줄: | ||
예를 들어, S="RRRR"일 때와 S="RURRURU"일 때의 격자는 아래 그림에서의 굵은 선과 같다. | 예를 들어, S="RRRR"일 때와 S="RURRURU"일 때의 격자는 아래 그림에서의 굵은 선과 같다. | ||
[[파일: | [[파일:UPO grid.PNG]] | ||
문자열 S에 대한 함수 f(S)를 다음과 같이 정의하자. | 문자열 S에 대한 함수 f(S)를 다음과 같이 정의하자. |
2020년 1월 1일 (수) 20:37 판
UPO 8회 문제는 1일차와 2일차의 구분이 없습니다. 1회, 2회와 같은 협력 문제 형태로 진행될 것입니다.
문제
'R'과 'U'만으로 이루어진 문자열 S가 있다. 문자열 S를 이용해 격자의 일부를 만들 것이다. 방식은 다음과 같다.
- 아무 칸이나 한 칸을 선택한다.
- 문자열의 글자들을 왼쪽부터 차례대로 살펴 보면서, 3번 과정을 반복한다.
- 만약 글자가 'R'이라면, 마지막으로 선택한 칸 오른쪽에 있는 칸을 선택한다. 만약 글자가 'U'라면, 마지막으로 선택한 칸 위에 있는 칸을 선택한다.
- 모든 글자를 살펴볼 때까지 3번 과정을 반복한다.
예를 들어, S="RRRR"일 때와 S="RURRURU"일 때의 격자는 아래 그림에서의 굵은 선과 같다.
문자열 S에 대한 함수 f(S)를 다음과 같이 정의하자.
- f(S)는, S를 이용해 격자를 만들 때, 격자의 맨 왼쪽 아래 꼭짓점에서 맨 오른쪽 위 꼭짓점까지 최단 거리로 이동하는 경우의 수이다.
예를 들어, f("RRRR")=6, f("RURRURU")=49이다.
우리의 목표는 f(S)=N을 만족하는 문자열 S를 찾는 것이다. 이때, S의 길이는 M 이하여야 한다. N과 M은 문제별로 주어진다. N이 같을 때, M이 작을수록 어려운 문제임에 주의하라.
- N=10, M=10
- N=10, M=4
- N=34, M=6
- N=100, M=9
- N=1000, M=14
- N=10000, M=20
- N=100000, M=24
- N=999999, M=29
- N=20200101, M=36