題目描述
「單身狗」 是中文對於單身人士的一種愛稱。
本題請你從上萬人的大型派對中找出落單的客人,以便給予特殊關愛。
輸入格式
輸入第一行給出乙個正整數 n,是已知夫妻/伴侶的對數;
隨後 n 行,每行給出一對夫妻/伴侶——為方便起見,每人對應乙個 id 號,為 5 位數字(從 00000 到 99999),id 間以空格分隔;
之後給出乙個正整數 m,為參加派對的總人數;
隨後一行給出這 m 位客人的 id,以空格分隔。
題目保證無人重婚或腳踩兩條船。
輸出格式
首先第一行輸出落單客人的總人數;
隨後第二行按 id 遞增順序列出落單的客人。id 間用 1 個空格分隔,行的首尾不得有多餘空格。
輸入樣例
311111 22222
33333 44444
55555 66666
755555 44444 10000 88888 22222 11111 23333
輸出樣例
510000 23333 44444 55555 88888
資料範圍
n ≤ 50 000
m ≤ 10 000
題解
stl:
解題步驟
:
先用map
對每一對情侶進行相互對映;
再用set
記錄要參加派對的人;
最後列舉所有set
中的元素,若其配偶不在set
中,則新增到ans
中去;
錯解:測試點 2 段錯誤,然而找不出錯#include
#include
#include
#include
using
namespace std;
int n, m;
vector ans;
unordered_map h;
set s;
intmain()
cin >> m;
for(
int i =
1; i <= m; i ++
)for
(auto
&x : s)if(
!s.count
(h[x]
)) ans.
push_back
(x);
cout << ans.
size()
<< endl;
bool flag =
true
;for
(int i =
0; i < ans.
size()
; i ++)if
(flag) cout << ans[i]
, flag =
false
;else cout <<
' '<< ans[i]
;return0;
}
#include
#include
#include
using
namespace std;
int n, m;
map h;
set s;
intmain()
cin >> m;
for(
int i =
1; i <= m; i ++
)for
(auto
&x : s)
if(s.
count
(h[x]))
cout << s.
size()
<< endl;
bool flag =
true
;for
(auto
&x : s)
if(flag) cout << x, flag =
false
;else cout <<
' '<< x;
return0;
}
pat 乙級 1065 單身狗
單身狗 是中文對於單身人士的一種愛稱。本題請你從上萬人的大型派對中找出落單的客人,以便給予特殊關愛。輸入格式 輸入第一行給出乙個正整數n 50000 是已知夫妻 伴侶的對數 隨後n行,每行給出一對夫妻 伴侶 為方便起見,每人對應乙個id號,為5位數字 從00000到99999 id間以空格分隔 之後...
PAT乙級 1065 單身狗 25
原題鏈結 單身狗 是中文對於單身人士的一種愛稱。本題請你從上萬人的大型派對中找出落單的客人,以便給予特殊關愛。輸入格式 輸入第一行給出乙個正整數n 50000 是已知夫妻 伴侶的對數 隨後n行,每行給出一對夫妻 伴侶 為方便起見,每人對應乙個id號,為5位數字 從00000到99999 id間以空格...
pat 乙級 1065 單身狗 25
時間限制 300 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 單身狗 是中文對於單身人士的一種愛稱。本題請你從上萬人的大型派對中找出落單的客人,以便給予特殊關愛。輸入格式 輸入第一行給出乙個正整數n 50000 是已知夫妻 伴侶的對...