結果
| 問題 |
No.1112 冥界の音楽
|
| コンテスト | |
| ユーザー |
trineutron
|
| 提出日時 | 2019-11-01 02:27:58 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 894 bytes |
| コンパイル時間 | 1,914 ms |
| コンパイル使用メモリ | 178,272 KB |
| 実行使用メモリ | 50,176 KB |
| 最終ジャッジ日時 | 2024-09-14 22:14:50 |
| 合計ジャッジ時間 | 5,036 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 21 RE * 13 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main() {
const long mod = 1000000007;
int k, m, n;
cin >> k >> m >> n;
vector<vector<int>> next(k * k);
vector<vector<vector<long>>> dp(n - 1, vector<vector<long>>(k, vector<long>(k)));
for (int i = 0; i < m; i++) {
int p, q, r;
cin >> p >> q >> r;
p--; q--; r--;
next.at(p * k + q).push_back(r);
if (p == 0) dp[0][p][q] = 1;
}
for (int i = 1; i < n - 1; i++) {
for (int p = 0; p < k; p++) {
for (int q = 0; q < k; q++) {
for (auto r : next.at(p * k + q)) {
dp[i][q][r] += dp[i - 1][p][q];
dp[i][q][r] %= mod;
}
}
}
}
long ans = 0;
for (int i = 0; i < k; i++) {
ans += dp[n - 2][i][0];
ans %= mod;
}
cout << ans << endl;
}
trineutron