Submission #42204570
Source Code Expand
Copy
import heapqINF = pow(10,20) # 無限大とする値。距離や頂点数から考えて十分大きい値にすることN,M,K = map(int, input().split()) # N:頂点数 M:入力辺数edge = [set() for _ in range(N+1)] # edge[i]:頂点iから出ている辺for _ in range(M):A,B = map(int, input().split()) # A:出発元頂点番号 B:行先頂点番号edge[A].add(B) # (同一頂点に向かう辺は1本であることが問題文で保証されていない場合は、最短辺のみが残るように工夫すること)edge[B].add(A) # 無向グラフなので逆側にも入れるstamina = [-1 for _ in range(N+1)] # ある頂点にいる(ことのできる)警備員の最大HP。各頂点に対し無限大で初期化。hq = list() # 探索用優先度付きキュー。(警備員の残り体力,頂点番号)を追加heapq.heapify(hq)for _ in range(K):p,h = map(int, input().split()) # A:出発元頂点番号 B:行先頂点番号heapq.heappush(hq,(-h,p)) # 最大値を取り出したいので-1倍して入れるstamina[p] = h
import heapq INF = pow(10,20) # 無限大とする値。距離や頂点数から考えて十分大きい値にすること N,M,K = map(int, input().split()) # N:頂点数 M:入力辺数 edge = [set() for _ in range(N+1)] # edge[i]:頂点iから出ている辺 for _ in range(M): A,B = map(int, input().split()) # A:出発元頂点番号 B:行先頂点番号 edge[A].add(B) # (同一頂点に向かう辺は1本であることが問題文で保証されていない場合は、最短辺のみが残るように工夫すること) edge[B].add(A) # 無向グラフなので逆側にも入れる stamina = [-1 for _ in range(N+1)] # ある頂点にいる(ことのできる)警備員の最大HP。各頂点に対し無限大で初期化。 hq = list() # 探索用優先度付きキュー。(警備員の残り体力,頂点番号)を追加 heapq.heapify(hq) for _ in range(K): p,h = map(int, input().split()) # A:出発元頂点番号 B:行先頂点番号 heapq.heappush(hq,(-h,p)) # 最大値を取り出したいので-1倍して入れる stamina[p] = h while len(hq)!=0: h,p = heapq.heappop(hq) # 優先度付きキューから残り体力最大の点を取り出し h = -1 * h # 最大値取り出しのために-1倍したのを戻す if stamina[p] == h: # (Q(v)←altではなく、更新毎に追加しているので、不要パターンがある。最良の場合のみ処理) for u in edge[p]: # 取り出した頂点から出ている全ての辺に対して if stamina[u] < h - 1: # より良い残り体力になるなら更新 stamina[u] = h - 1 heapq.heappush(hq,(-(h-1),u)) #更新した頂点からの接続点はより良くなる可能性があるので再調査 ans = list() for i in range(1,N+1): if stamina[i] != -1: ans.append(i) print(len(ans)) print(*ans)
Submission Info
Submission Time | |
---|---|
Task | E - Art Gallery on Graph |
User | tonomotohide |
Language | PyPy3 (7.3.0) |
Score | 475 |
Code Size | 2142 Byte |
Status | AC |
Exec Time | 1328 ms |
Memory | 206060 KB |
Judge Result
Set Name | Sample | All | after_contest | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 475 / 475 | 0 / 0 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 02_tree_00.txt, 02_tree_01.txt, 03_path_00.txt, 03_path_01.txt, 04_perfect_00.txt, 05_corner_1_00.txt, 05_corner_1_01.txt, 05_corner_1_02.txt, 05_corner_1_03.txt, 05_corner_1_04.txt, 05_corner_1_05.txt, 06_star_00.txt, 06_star_01.txt, 07_n_m_k_max_00.txt, 07_n_m_k_max_01.txt, 07_n_m_k_max_02.txt, 07_n_m_k_max_03.txt, 07_n_m_k_max_04.txt |
after_contest | 99_after_contest_00.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 62 ms | 62560 KB |
00_sample_01.txt | AC | 51 ms | 62352 KB |
00_sample_02.txt | AC | 49 ms | 62412 KB |
01_random_00.txt | AC | 168 ms | 105824 KB |
01_random_01.txt | AC | 95 ms | 96324 KB |
01_random_02.txt | AC | 685 ms | 140744 KB |
01_random_03.txt | AC | 779 ms | 152720 KB |
01_random_04.txt | AC | 176 ms | 98024 KB |
01_random_05.txt | AC | 561 ms | 123720 KB |
01_random_06.txt | AC | 505 ms | 113096 KB |
01_random_07.txt | AC | 434 ms | 139108 KB |
01_random_08.txt | AC | 140 ms | 95420 KB |
01_random_09.txt | AC | 85 ms | 96192 KB |
01_random_10.txt | AC | 687 ms | 143872 KB |
01_random_11.txt | AC | 818 ms | 149952 KB |
02_tree_00.txt | AC | 750 ms | 157180 KB |
02_tree_01.txt | AC | 449 ms | 144728 KB |
03_path_00.txt | AC | 430 ms | 145948 KB |
03_path_01.txt | AC | 420 ms | 145836 KB |
04_perfect_00.txt | AC | 319 ms | 103472 KB |
05_corner_1_00.txt | AC | 716 ms | 165912 KB |
05_corner_1_01.txt | AC | 684 ms | 166144 KB |
05_corner_1_02.txt | AC | 793 ms | 165376 KB |
05_corner_1_03.txt | AC | 837 ms | 165408 KB |
05_corner_1_04.txt | AC | 763 ms | 161512 KB |
05_corner_1_05.txt | AC | 771 ms | 160708 KB |
06_star_00.txt | AC | 744 ms | 203764 KB |
06_star_01.txt | AC | 773 ms | 206060 KB |
07_n_m_k_max_00.txt | AC | 1164 ms | 177620 KB |
07_n_m_k_max_01.txt | AC | 1211 ms | 177000 KB |
07_n_m_k_max_02.txt | AC | 1230 ms | 176752 KB |
07_n_m_k_max_03.txt | AC | 1275 ms | 170384 KB |
07_n_m_k_max_04.txt | AC | 1328 ms | 177104 KB |
99_after_contest_00.txt | AC | 858 ms | 165316 KB |