Submission #68670906
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7; //1000000007
/*
組み合わせ計算の方法およびソースコードは
https://algo-logic.info/combination/
を参照した
*/
vector<long long> fact_inv, inv;
/* init_nCk :二項係数のための前処理
計算量:O(k)
*/
void init_nCk(int SIZE) {
fact_inv.resize(SIZE + 5);
inv.resize(SIZE + 5);
fact_inv[0] = fact_inv[1] = 1;
inv[1] = 1;
for (int i = 2; i < SIZE + 5; i++) {
inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
fact_inv[i] = fact_inv[i - 1] * inv[i] % MOD;
}
}
/* nCk :MODでの二項係数を求める(前処理 int_nCk が必要)
計算量:O(k)
*/
long long nCk(int n, int k) {
assert(!(n < k));
assert(!(n < 0 || k < 0));
long long ans = 1;
for (int i = n; i >= n - k + 1; i--) {
ans *= i;
ans %= MOD;
}
return ans * fact_inv[k] % MOD;
}
int main(){
int stairs_number, jump_steps;
cin >> stairs_number >> jump_steps;
long long pattern_count = 1; //all 1段上りは確定で1パータン存在する
int iteration_number = stairs_number/jump_steps;
for(int i = 1; i <= iteration_number;i++){
int onestep_jump_num = stairs_number - jump_steps * i;
init_nCk(i+onestep_jump_num);
long long tmp = nCk(i+onestep_jump_num,i);
pattern_count += tmp;
}
cout << pattern_count % MOD << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | 050 - Stair Jump(★3) |
| User | ryamamoto |
| Language | C++ 20 (gcc 12.2) |
| Score | 3 |
| Code Size | 1519 Byte |
| Status | AC |
| Exec Time | 31 ms |
| Memory | 4740 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 3 / 3 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 10_small_random_00.txt, 10_small_random_01.txt, 10_small_random_02.txt, 10_small_random_03.txt, 10_small_random_04.txt, 10_small_random_05.txt, 10_small_random_06.txt, 10_small_random_07.txt, 10_small_random_08.txt, 10_small_random_09.txt, 10_small_random_10.txt, 10_small_random_11.txt, 10_small_random_12.txt, 10_small_random_13.txt, 10_small_random_14.txt, 10_small_random_15.txt, 10_small_random_16.txt, 10_small_random_17.txt, 10_small_random_18.txt, 10_small_random_19.txt, 11_large_random_00.txt, 11_large_random_01.txt, 11_large_random_02.txt, 11_large_random_03.txt, 11_large_random_04.txt, 11_large_random_05.txt, 11_large_random_06.txt, 11_large_random_07.txt, 11_large_random_08.txt, 11_large_random_09.txt, 11_large_random_10.txt, 11_large_random_11.txt, 11_large_random_12.txt, 11_large_random_13.txt, 11_large_random_14.txt, 11_large_random_15.txt, 11_large_random_16.txt, 11_large_random_17.txt, 11_large_random_18.txt, 11_large_random_19.txt, 20_max_random_00.txt, 20_max_random_01.txt, 20_max_random_02.txt, 20_max_random_03.txt, 20_max_random_04.txt, 20_max_random_05.txt, 20_max_random_06.txt, 20_max_random_07.txt, 20_max_random_08.txt, 20_max_random_09.txt, 20_max_random_10.txt, 20_max_random_11.txt, 20_max_random_12.txt, 20_max_random_13.txt, 20_max_random_14.txt, 20_max_random_15.txt, 20_max_random_16.txt, 20_max_random_17.txt, 20_max_random_18.txt, 20_max_random_19.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3608 KiB |
| 00_sample_01.txt | AC | 1 ms | 3488 KiB |
| 00_sample_02.txt | AC | 1 ms | 3532 KiB |
| 00_sample_03.txt | AC | 2 ms | 3640 KiB |
| 10_small_random_00.txt | AC | 1 ms | 3492 KiB |
| 10_small_random_01.txt | AC | 1 ms | 3428 KiB |
| 10_small_random_02.txt | AC | 1 ms | 3480 KiB |
| 10_small_random_03.txt | AC | 1 ms | 3520 KiB |
| 10_small_random_04.txt | AC | 1 ms | 3556 KiB |
| 10_small_random_05.txt | AC | 1 ms | 3644 KiB |
| 10_small_random_06.txt | AC | 1 ms | 3548 KiB |
| 10_small_random_07.txt | AC | 1 ms | 3636 KiB |
| 10_small_random_08.txt | AC | 1 ms | 3480 KiB |
| 10_small_random_09.txt | AC | 1 ms | 3488 KiB |
| 10_small_random_10.txt | AC | 1 ms | 3484 KiB |
| 10_small_random_11.txt | AC | 1 ms | 3492 KiB |
| 10_small_random_12.txt | AC | 1 ms | 3520 KiB |
| 10_small_random_13.txt | AC | 1 ms | 3496 KiB |
| 10_small_random_14.txt | AC | 1 ms | 3608 KiB |
| 10_small_random_15.txt | AC | 1 ms | 3472 KiB |
| 10_small_random_16.txt | AC | 1 ms | 3456 KiB |
| 10_small_random_17.txt | AC | 1 ms | 3552 KiB |
| 10_small_random_18.txt | AC | 1 ms | 3536 KiB |
| 10_small_random_19.txt | AC | 1 ms | 3496 KiB |
| 11_large_random_00.txt | AC | 31 ms | 4492 KiB |
| 11_large_random_01.txt | AC | 1 ms | 3428 KiB |
| 11_large_random_02.txt | AC | 2 ms | 3892 KiB |
| 11_large_random_03.txt | AC | 1 ms | 3800 KiB |
| 11_large_random_04.txt | AC | 1 ms | 3804 KiB |
| 11_large_random_05.txt | AC | 1 ms | 3568 KiB |
| 11_large_random_06.txt | AC | 1 ms | 3692 KiB |
| 11_large_random_07.txt | AC | 1 ms | 3680 KiB |
| 11_large_random_08.txt | AC | 2 ms | 3856 KiB |
| 11_large_random_09.txt | AC | 1 ms | 3516 KiB |
| 11_large_random_10.txt | AC | 1 ms | 3596 KiB |
| 11_large_random_11.txt | AC | 1 ms | 3424 KiB |
| 11_large_random_12.txt | AC | 1 ms | 3696 KiB |
| 11_large_random_13.txt | AC | 2 ms | 3696 KiB |
| 11_large_random_14.txt | AC | 1 ms | 3480 KiB |
| 11_large_random_15.txt | AC | 28 ms | 4404 KiB |
| 11_large_random_16.txt | AC | 1 ms | 3512 KiB |
| 11_large_random_17.txt | AC | 1 ms | 3604 KiB |
| 11_large_random_18.txt | AC | 2 ms | 3612 KiB |
| 11_large_random_19.txt | AC | 1 ms | 3852 KiB |
| 20_max_random_00.txt | AC | 2 ms | 4208 KiB |
| 20_max_random_01.txt | AC | 1 ms | 3912 KiB |
| 20_max_random_02.txt | AC | 1 ms | 3636 KiB |
| 20_max_random_03.txt | AC | 2 ms | 3548 KiB |
| 20_max_random_04.txt | AC | 7 ms | 4684 KiB |
| 20_max_random_05.txt | AC | 1 ms | 3696 KiB |
| 20_max_random_06.txt | AC | 2 ms | 4192 KiB |
| 20_max_random_07.txt | AC | 1 ms | 3488 KiB |
| 20_max_random_08.txt | AC | 2 ms | 4192 KiB |
| 20_max_random_09.txt | AC | 1 ms | 3952 KiB |
| 20_max_random_10.txt | AC | 2 ms | 4288 KiB |
| 20_max_random_11.txt | AC | 1 ms | 3668 KiB |
| 20_max_random_12.txt | AC | 2 ms | 4224 KiB |
| 20_max_random_13.txt | AC | 6 ms | 4616 KiB |
| 20_max_random_14.txt | AC | 3 ms | 4420 KiB |
| 20_max_random_15.txt | AC | 1 ms | 3612 KiB |
| 20_max_random_16.txt | AC | 11 ms | 4740 KiB |
| 20_max_random_17.txt | AC | 2 ms | 4136 KiB |
| 20_max_random_18.txt | AC | 1 ms | 3940 KiB |
| 20_max_random_19.txt | AC | 3 ms | 4552 KiB |