切換
舊版
前往
大廳
主題

ZeroJudge - d691: 00496 - Simply Subsets 解題心得

Not In My Back Yard | 2020-10-09 00:00:34 | 巴幣 0 | 人氣 253

題目連結:


題目大意:
輸入有多筆測試資料,每筆佔兩列。兩列皆給定不定量的整數(最多 100 個,可能重複且可能一個數字都沒有(空白列)),代表兩個整數集合 A 、 B 的內容。

試問這兩個集合之關係:
如果 A 跟 B 是同一個集合,則輸出「A equals B」;
如果 A 是 B 的子集合,則輸出「A is a proper subset of B」;
如果 B 是 A 的子集合「B is a proper subset of A」;
如果 A 跟 B 沒有任何交集,則輸出「A and B are disjoint」;
如果 A 跟 B 有部分交集,則輸出「I'm confused!」。



範例輸入:
55 27
55 27
9 24 1995
9 24
1 2 3
1 2 3 4
1 2 3
4 5 6
1 2
2 3


範例輸出:
A equals B
B is a proper subset of A
A is a proper subset of B
A and B are disjoint
I'm confused!


解題思維:
可以利用類似這題的方式求得兩者都有出現的元素(當然,也可以使用內建的函式庫之函式),將這些元素形成一個新的集合 S。

然後看重複元素集合 S 與 A 、 B 的關係。如果 S = A = B ,則就是集合都相同(所以也可以先判斷 A 是否等於 B,不用去算 S),所以輸出「A equals B」;
若否,如果 S 為空集合且 A 和 B 不為空集合,則代表 A 和 B 沒有交集,則輸出「A and B are disjoint」;
若否,如果 S = A ,則 A 是 B 的子集合,輸出「A is a proper subset of B」;
若否,如果 S = B ,則 B 是 A 的子集合,輸出「B is a proper subset of A」;
以上皆非,則代表 A 和 B 有部分的交集,輸出「I'm confused!」。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

胖胖貓
不好意思,想問個無關的問題。
該怎麼上傳題目到 ZeroJudge ,想把 UVA 一些有趣的題目翻譯後丟過去
2020-10-09 17:27:36
Not In My Back Yard
首先如果右上角的個人選單(可以連去解題進度以及統計的那邊)沒有競賽管理以及題目管理的話,則代表還沒成為出題者。

成為出題者的步驟如下:
在首頁找到「我要加題目」,
https://images2.imgbox.com/ff/33/j0DkDoCu_o.png

在該頁面有「成為出題者」的按鈕,
https://images2.imgbox.com/16/ff/2IPaUmAP_o.png

按下去就有權限可以開競賽以及題目了,
https://images2.imgbox.com/0d/23/1KyxKLNJ_o.png
https://images2.imgbox.com/7e/9a/SroFs3dF_o.png

題目管理點進去長這樣
https://images2.imgbox.com/41/a0/meLhuyzV_o.png

上面就有新增題目(沒用過「匯入題目」,所以無法說明),裡面需要填寫題目敘述、輸出入的說明等等,還有上傳測試資料以及範例程式碼(其他使用者看不見該程式碼,僅供測試)。



至於出題的規定,基本上內容不要違反善良風俗或是原出處作者(或網站)不同意轉載都是可以放上去的。

以上。
2020-10-09 20:24:31
胖胖貓
感謝回覆,我那天想送測資測不上去原來是自己 SSD 掛了 wwwww
另外想問一下怎麼在出題者那邊感謝某個ID的指正,順便 tag 人
2020-10-19 23:13:07
Not In My Back Yard
似乎沒有直接的 Hashtag 可以用,但是可以直接去找 ID 複製可以連同超連結一起複製。但是這樣對方應該不會知道XD

這個可能要問管理員吧?沒有的話就當在推薦一個網站新功能。
2020-10-19 23:48:14

更多創作