Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 102 - 成雙成對

Special Judge

Problem Statistics

Solved Member: 10  Submission: 51  User Tried: 12

Statement:


你玩過イリス症候群嗎,這是一款敘述一群人從小學開始的瘟腥故事。

身為一位國小老師,你要做的工作之一就是幫爭執中的小朋友們分組。
小朋友們互相有自己喜歡的同學們,並且關係為雙向的。例如A與B要好,則代表B與A也要好。

現在有勞作課,你要將全班 N 個由1編號到N的小朋友們分成2組,由於勞作是需要兩兩合作的功課,所以小朋友們都希望「組裡有偶數個人跟他自己是要好的」。
身為一位老師,為了增加小朋友們對你的好感度,決定盡力幫他們解決這個問題,滿足最多小朋友的希望。

兩組之中,可以有一組是空的(意即所有人都在同一組)。

Task:

寫一個程式:
讀入人數,以及同學之間的友情關係。
計算最多滿足的人數。
印出其中一組該要怎麼分配。

Input:Output:

第1行有一個整數 N (1 ≤ N ≤ 200),代表班上的人數。
接下來的 N 行,第i+1行最剛開始都有一個數字 Li (0 ≤ Li ≤ N-1),代表與同學 i 要好的人數。
接著 Li 個數字,為與同學 i 要好的人的編號。
請輸出在滿足最多人的情況下,該要怎麼分配。
若有很多組解,輸出任意一組即可。

輸出第一行有一個整數M,代表最佳解之中其中一組的人數。
下一行請你輸出M個相異的整數,代表這些同學應該要分配在同一組。

Sample Input:Sample Output:

5
3 2 3 4
2 1 3
4 2 1 4 5
2 1 3
1 3
3
1 2 3

HINT:


1,2,3同組,每個人都剛好有2個同組的人跟自己是要好的。
4,5同組,每個人都剛好有0個同組的人跟自己是要好的。
因此最佳的情況可以滿足5位小朋友的要求,輸出(1,2,3)或(4,5)皆是合法的。

Source:

POI 12 Stage 3

Problem Setter

Testdata:

TestTimeMemoryScore
01000ms32768kb
1-ocen1000ms32768kb
11000ms32768kb5
2-ocen1000ms32768kb
21000ms32768kb5
3-ocen1000ms32768kb
31000ms32768kb5
4-ocen1000ms32768kb
41000ms32768kb5
51000ms32768kb5
61000ms32768kb5
71000ms32768kb5
81000ms32768kb5
91000ms32768kb5
101000ms32768kb5
111000ms32768kb5
121000ms32768kb5
131000ms32768kb5
141000ms32768kb5
151000ms32768kb5
161000ms32768kb5
171000ms32768kb5
181000ms32768kb5
191000ms32768kb5
201000ms32768kb5