結果
問題 | No.1660 Matrix Exponentiation |
ユーザー |
![]() |
提出日時 | 2025-03-20 21:04:00 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 211 ms / 2,000 ms |
コード長 | 1,056 bytes |
コンパイル時間 | 286 ms |
コンパイル使用メモリ | 82,052 KB |
実行使用メモリ | 93,236 KB |
最終ジャッジ日時 | 2025-03-20 21:04:13 |
合計ジャッジ時間 | 4,055 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
import sysfrom collections import dequedef main():N, K = map(int, sys.stdin.readline().split())if K == 0:print(1)returnadj = [[] for _ in range(N + 1)]in_degree = [0] * (N + 1)for _ in range(K):r, c = map(int, sys.stdin.readline().split())adj[r].append(c)in_degree[c] += 1q = deque()order = []for i in range(1, N + 1):if in_degree[i] == 0:q.append(i)processed = 0while q:u = q.popleft()order.append(u)processed += 1for v in adj[u]:in_degree[v] -= 1if in_degree[v] == 0:q.append(v)if processed != N:print(-1)returnmax_len = 0dp = [0] * (N + 1)for u in order:for v in adj[u]:if dp[u] + 1 > dp[v]:dp[v] = dp[u] + 1if dp[v] > max_len:max_len = dp[v]print(max_len + 1)if __name__ == "__main__":main()