結果

問題 No.1451 集団登校
ユーザー shiomusubi496
提出日時 2021-03-25 10:58:22
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 807 ms / 2,000 ms
コード長 679 bytes
コンパイル時間 86 ms
コンパイル使用メモリ 12,928 KB
実行使用メモリ 47,444 KB
最終ジャッジ日時 2024-11-27 02:29:27
合計ジャッジ時間 8,728 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

mod=1000000007
N,M=map(int,input().split())
st=[{i}for i in range(N)]
root=[i for i in range(N)]
ans=[1 for i in range(N)]
for i in range(M):
    A,B=map(int,input().split())
    A=root[A-1]
    B=root[B-1]
    if A==B:
        continue
    if len(st[A])<len(st[B]):
        A,B=B,A
    if len(st[A])!=len(st[B]):
        for i in st[B]:
            ans[i]=0
            root[i]=A
            st[A].add(i)
        st[B]={}
    else:
        for i in st[A]:
            ans[i]*=500000004
            ans[i]%=mod
        for i in st[B]:
            ans[i]*=500000004
            ans[i]%=mod
            root[i]=A
            st[A].add(i)
        st[B]={}
for i in ans:
    print(i)
0