Submission #5790190


Source Code Expand

#include <iostream>
#include <vector>

using namespace std;

typedef long long ll;

const ll MOD = 1000000007;

int main() {
    int N, M;
    cin >> N >> M;

    vector<vector<vector<ll>>> dp(M+1, vector<vector<ll>>(N+1, vector<ll>(N+1, 0)));
    dp[0][N-1][1] = 1;
    for(int m=0;m<M;++m) {
        for(int x=0;x<N;++x) {
            for(int y=1;y<=N-x;++y) {
                if(!dp[m][x][y]) continue;
                if(x) (dp[m+1][x-1][y] += (dp[m][x][y] * x) % MOD) %= MOD;
                (dp[m+1][x][y] += (dp[m][x][y] * (N-x-y)) % MOD) %= MOD;
                (dp[m+1][x][N-x] += (dp[m][x][y] * y) % MOD) %= MOD;
            }
        }
    }

    cout << dp[M][0][N] << endl;
}

Submission Info

Submission Time
Task F - Road of the King
User Noimin
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 717 Byte
Status AC
Exec Time 172 ms
Memory 216832 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 3
AC × 16
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 1 ms 256 KB
01-03.txt AC 1 ms 256 KB
01-04.txt AC 2 ms 2432 KB
01-05.txt AC 2 ms 640 KB
01-06.txt AC 22 ms 20480 KB
01-07.txt AC 162 ms 202112 KB
01-08.txt AC 169 ms 214016 KB
01-09.txt AC 171 ms 216192 KB
01-10.txt AC 172 ms 216832 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 57 ms 55424 KB
sample-03.txt AC 69 ms 109312 KB