QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 256 MB Points totaux : 100

#20297. 전설의 게임

Statistiques

모바일 게임의 정점이라 할 만한 게임을 하는 한 사람이 어느 날 계약을 체결하려다가 해야 하는 게임 때문에 몹시 화가 났습니다. 게임은 다음과 같이 진행됩니다.

  • $1$부터 $2N+K$까지의 수가 적힌 카드로 구성된 카드 풀이 있습니다.
  • 게임은 이 카드 풀에서 카드 $N$장을 하나씩 뽑습니다. 뽑은 카드는 돌려놓지 않으므로 같은 수를 두 번 뽑을 수 없습니다.
  • 카드를 뽑은 뒤 플레이어는 다음 카드의 수가 더 클지 더 작을지 예측합니다.

플레이어가 화난 이유는 운이 나빠 작은 수 뒤에는 계속 더 작은 수가 나오고, 큰 수 뒤에는 계속 더 큰 수가 나오기 때문입니다. 플레이어는 게임의 무작위 선택 방식을 수정하여 이를 막으려 합니다. 수정된 카드 추첨에는 다음 두 규칙이 추가됩니다.

  • $1$부터 $N$까지의 수가 적힌 카드를 뽑았다면 다음에 뽑는 카드의 수는 반드시 $N$보다 커야 합니다($>N$).
  • $N+K+1$부터 $2N+K$까지의 수가 적힌 카드를 뽑았다면 다음에 뽑는 카드의 수는 반드시 $N+K+1$보다 작아야 합니다($<N+K+1$).

수정을 마친 플레이어는 게임을 얼마나 망가뜨렸는지 궁금해합니다. 그 정도를 나타내는 척도는 수정된 게임에서 가능한 서로 다른 카드 추첨 순서의 총개수를 원래 게임에서 가능한 카드 추첨 순서의 총개수로 나눈 비율입니다. 플레이어는 이 비율을 $10^9+7$로 나눈 나머지를 여러분에게 묻습니다.

구현 세부사항

다음 함수를 구현해야 합니다.

int oyun(int N, int K)
  • $N$과 $K$는 문제에서 설명한 카드 풀과 뽑을 카드의 개수를 결정하는 정수입니다.
  • 이 함수는 요구한 비율을 반환해야 합니다.
  • 이 함수는 각 테스트에서 정확히 한 번 호출됩니다.

제한

  • $1\le N\le 10^6$
  • $1\le K\le 100$

서브태스크

서브태스크 점수 추가 제한 의존하는 서브태스크
1 10 $1\le N,K\le 6$ —
2 18 $1\le N\le 100$ 1
3 6 $1\le N\le 1000$ 1, 2
4 47 $1\le N\le 10^4$ 1, 2, 3
5 19 추가 제한 없음 1, 2, 3, 4

예제

oyun(2, 1)

위 함수 호출은 $600000005$를 반환해야 합니다.

사용하는 수는 $1,2,3,4,5$이며 카드 2장을 뽑습니다. 원래 게임에서는 카드를 뽑는 방법이 20가지입니다. 수정된 게임에서는 첫 카드가 $1,2,4,5$ 중 하나이면 두 번째 카드로 가능한 수가 3가지이고, 첫 카드가 $3$이면 두 번째 카드로 가능한 수가 4가지입니다. 따라서 수정된 게임에서는 총 16가지가 가능합니다. $\frac{16}{20}=\frac45$입니다. 이 확률은 사용하는 모듈러에서 $600000005$와 같습니다.

예제 채점기

예제 채점기는 각 테스트의 입력이 다음 형식일 것으로 기대합니다.

$$N\ K$$

요구한 함수가 정수를 성공적으로 반환하면 그 결과 $R$을 다음 형식으로 출력합니다.

$$R$$

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#2824EditorialOpenNew Editorial for Problem #20297louyuxuanView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.