QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#18704. 疫學調查

统计

2020 年,一種新型傳染病流行,UCPC 國的疾病管理本部正在進行流行病學調查。UCPC 國的總人口為 $N$ 人,每個人分別擁有 $1, 2, \dots, N$ 的身分證字號。

疾病管理本部已掌握到目前為止共有 $M$ 場聚會的事實。每場聚會都有 $k$ 個人參加,參加該聚會的人員身分證字號分別為 $a_1, a_2, \dots, a_k$。

由於傳染病僅在密切接觸的封閉空間內傳播,因此它必然只會在聚會中傳播。傳染病的傳播規則如下:

  • 若參加聚會的人員中,有一人或以上已經感染傳染病,則所有參加該聚會的人員都會被感染。
  • 若聚會中沒有人感染傳染病,則不會發生任何事。

疾病管理本部希望利用所掌握的資料來預測初始感染者。給定聚會資訊以及 $M$ 場聚會結束後的感染狀況,請編寫一個程式來反向追蹤在第一場聚會開始前就已經感染的人員。假設除了上述規則外,不存在其他傳染途徑,且傳染病不會痊癒。

輸入格式

第一行給出人數 $N$ 與聚會次數 $M$ ($2 \le N \le 100\,000$, $1 \le M \le 100\,000$)。

從第二行開始的 $M$ 行,按時間順序給出聚會資訊。每行給出參加該聚會的人數 $k$ ($2 \le k \le N$) 以及參加者的身分證字號 $a_i$ ($1 \le a_i \le N, a_i \neq a_j$)。不存在多場聚會同時進行的情況。

最後一行給出 $N$ 個人的感染資訊。若最後一場聚會結束後,身分證字號為 $i$ 的人已感染傳染病,則給出 $1$,否則給出 $0$。請注意,可能沒有任何人感染。

所有 $k$ 的總和不超過 $1\,000\,000$。

輸出格式

若無法反向追蹤出聚會開始前的感染者,請輸出 NO

否則,第一行輸出 YES,第二行輸出 $N$ 個整數(以空格分隔),代表感染資訊。其中第 $i$ 個數若為 $1$,表示身分證字號為 $i$ 的人在第一場聚會開始前就已經感染,否則為 $0$。若存在多種可能的感染狀態,輸出其中任意一種即可。

範例

範例輸入 1

7 3
3 1 2 3
3 3 4 5
3 5 6 7
0 0 1 1 1 1 1

範例輸出 1

YES
0 0 0 1 1 1 1

範例輸入 2

7 3
3 1 2 3
3 3 4 5
3 5 6 7
1 0 1 0 1 0 1

範例輸出 2

NO

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.