結果
問題 | No.2948 move move rotti |
ユーザー | Michirakara |
提出日時 | 2024-07-03 06:42:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,700 ms / 4,000 ms |
コード長 | 773 bytes |
コンパイル時間 | 198 ms |
コンパイル使用メモリ | 82,500 KB |
実行使用メモリ | 507,032 KB |
最終ジャッジ日時 | 2024-07-03 06:43:16 |
合計ジャッジ時間 | 22,810 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
n,m,k=map(int,input().split()) x=[*map(lambda a:int(a)-1,input().split())] g=[[]for _ in range(n)] for i in range(m): u,v=map(int,input().split()) g[u-1].append(v-1) g[v-1].append(u-1) ans=[[1]*(n+1)for _ in range(n)] for t in range(k): dp=[[[0]*(1<<n) for _ in range(n)]for _ in range(n+1)] dp[0][x[t]][1<<x[t]]=1 for i in range(n): for j in range(n): ok=0 for tmp in range(1<<n): if not dp[i][j][tmp]:continue ok=1 for k in range(len(g[j])): if (tmp>>g[j][k])&1:continue dp[i+1][g[j][k]][tmp|(1<<g[j][k])]=1 if not ok:ans[j][i]=0 for i in range(n): ok=0 for tmp in range(1<<n): if dp[n][i][tmp]:ok=1 if not ok:ans[i][n]=0 ok=0 for i in range(n): for j in range(n): if ans[i][j]:ok=1 if ok:print("Yes") else:print("No")