Submission #993262


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i,a,b) for(ut i=(a);i<(ut)(b);i++)
#define REP(i,b) FOR(i,0,b)
#define ALL(c) c.begin(),c.end()
#define PB push_back
#define cat //cout << __LINE__ << endl;
using namespace std;
typedef long long LL;
typedef double ld;
typedef LL ut;
typedef vector<ut> VI;
typedef pair<ut,ut> pr;
typedef pair<ut,pr> ppr;
typedef vector<pr> Vpr;
typedef vector<ppr> Vppr;
typedef priority_queue<pr,Vpr,greater<pr> > PQ;
using namespace std;
const int SIZE=5*1e5;
const LL INF=1LL<<58;
const LL p=1e9+7;
LL N,M;
LL DP[302][302][302];
int main(){
	cin >> N >> M;
	DP[0][1][1]=1;
	REP(i,M){
		REP(j,N+1){
			FOR(k,j,N+1){
				DP[i][j][k]%=p;
	//			if(DP[i][j][k])
	//			cout <<i <<" " << j << " " << k << " " << DP[i][j][k] << endl;
				DP[i+1][k][k]+=DP[i][j][k]*j%p;
				DP[i+1][j][k]+=DP[i][j][k]*(k-j)%p;
				DP[i+1][j][k+1]+=DP[i][j][k]*(N-k)%p;				
			}
		}
	}
	cout << DP[M][N][N]%p << endl;
	return 0;
}

Submission Info

Submission Time
Task F - Road of the King
User reew2n
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 968 Byte
Status AC
Exec Time 320 ms
Memory 214656 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 3
AC × 13
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
Case Name Status Exec Time Memory
01-01.txt AC 2 ms 256 KB
01-02.txt AC 2 ms 256 KB
01-03.txt AC 6 ms 2816 KB
01-04.txt AC 4 ms 1664 KB
01-05.txt AC 11 ms 8576 KB
01-06.txt AC 74 ms 64896 KB
01-07.txt AC 304 ms 207360 KB
01-08.txt AC 317 ms 213760 KB
01-09.txt AC 319 ms 214528 KB
01-10.txt AC 320 ms 214656 KB
sample-01.txt AC 2 ms 256 KB
sample-02.txt AC 134 ms 108288 KB
sample-03.txt AC 162 ms 107776 KB