結果
問題 | No.483 マッチ並べ |
ユーザー | H3PO4 |
提出日時 | 2020-11-25 18:59:32 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,147 ms / 2,000 ms |
コード長 | 774 bytes |
コンパイル時間 | 333 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 115,040 KB |
最終ジャッジ日時 | 2024-07-23 19:25:41 |
合計ジャッジ時間 | 56,655 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
外部呼び出し有り |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 53 |
ソースコード
from scipy.sparse.csgraph import connected_components from scipy.sparse import csr_matrix N = int(input()) node = set() RC = [tuple(map(int, input().split())) for _ in range(N)] for r0, c0, r1, c1 in RC: node.add((r0, c0)) node.add((r1, c1)) node_d = {rc: i for i, rc in enumerate(node)} size = len(node_d) frm, to = [], [] for r0, c0, r1, c1 in RC: frm.append(node_d[(r0, c0)]) to.append(node_d[(r1, c1)]) matr = csr_matrix(([1] * N, (frm, to)), shape=(size, size)) p, labels = connected_components(matr) conn_node = [0] * p conn_edge = [0] * p for x in labels: conn_node[x] += 1 for r0, c0, _, _ in RC: conn_edge[labels[node_d[(r0, c0)]]] += 1 for n,e in zip(conn_node, conn_edge): if n < e: print('NO') exit() print('YES')