UVa11678 - Cards' Exchange (水題)

題目大意:

兩個非常可愛的小女孩,想要玩交換卡片的遊戲 (ノ>ω<)ノ

可是他們不想拿到的重複卡片,試問他們最多可以交換幾張卡片。

分析:

水到不行的水題

Step

  1. 使用集合 (排除重複 (muliple) )
  2. 差集 (set_difference)
  3. 求差集後的總元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <bits/stdc++.h>
#define LOCAL
using namespace std;


int main()
{
#ifdef LOCAL
freopen("in1.txt" , "r" , stdin );
#endif // LOCAL
set<int> A , B , diff_A , diff_B ;
int x , y , intTemp ;
while(cin >> x >> y && x && y){
A.clear() ;
B.clear() ;
diff_A.clear() ;
diff_B.clear() ;
for(int i = 0 ; i < x ; i++){
cin >> intTemp ;
A.insert(intTemp) ;
}
for(int i = 0 ; i < y ; i++){
cin >> intTemp ;
B.insert(intTemp) ;
}
set_difference(A.begin() , A.end() , B.begin() , B.end() , inserter(diff_A, diff_A.begin()) ) ;
set_difference(B.begin() , B.end() , A.begin() , A.end() , inserter(diff_B, diff_B.begin()) ) ;
cout << min(diff_A.size() , diff_B.size()) << '\n' ;
}
return 0;
}
  • 版權聲明: 本部落格所有文章除有特別聲明外,均採用 Apache License 2.0 許可協議。轉載請註明出處!
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: