time limit: 1 sec
memory limit: 128 mb
submit: 3767
solved: 1927 [
submit][
status][
web board]
集合的運算就是用給定的集合去指定新的集合。設a和b是集合,則它們的並差交補集分別定義如下:
a∪b=
a∩b=
a-b=
sa =
sb =
第一行輸入乙個正整數t,表示總共有t組測試資料。(t<=200)
然後下面有2t行,每一行都有n+1個數字,其中第乙個數字是n(0<=n<=100),表示該行後面還有n個數字輸入。
對於每組測試資料,首先輸出測試資料序號,」case #.no」,
接下來輸出共7行,每行都是乙個集合,
前2行分別輸出集合a、b,接下5行來分別輸出集合a、b的並(a u b)、交(a n b)、差(a – b)、補。
集合中的元素用「{}」擴起來,且元素之間用「, 」隔開。
14 1 2 3 10
case# 1:a = b = {}a u b = a n b = {}a - b = sa = {}sb =
使用stl中的set可以快速解決這個問題~
答案如下~
#include using namespace std;
#include #include #include void print(const set&t)
" << endl;}
int main()
cin>>n;
for(int k = 0;k < n;k++)
cout<<"case# "set_union(a1.begin(),a1.end(),a2.begin(),a2.end(),inserter(a4,a4.begin()));
cout<<"a u b = ";
print(a4);
//交集
seta5;
set_intersection(a1.begin(),a1.end(),a2.begin(),a2.end(),inserter(a5,a5.begin()));
cout<<"a n b = ";
print(a5);
//差集
seta3;
set_difference(a1.begin(),a1.end(),a2.begin(),a2.end(),inserter(a3,a3.begin()));
cout<<"a - b = ";
print(a3);
//a的補集
seta6;
set_difference(a4.begin(),a4.end(),a1.begin(),a1.end(),inserter(a6,a6.begin()));
cout<<"sa = ";
print(a6);
//b的補集
seta7;
set_difference(a4.begin(),a4.end(),a2.begin(),a2.end(),inserter(a7,a7.begin()));
cout<<"sb = ";
print(a7);
}}
集合 集合運算
update pop remove 集合的運算 集合和字典相同都用 但是集合沒有鍵,只有元素值 集合中存貯列表會報錯,因為只能存貯不可變序列,而列表是可變的 直接建立 se print se,type se class set 通過set 建立 se set 1 2,3 4 這裡函式中用列表,因為要...
mysql集合運算教程 SQL之集合運算
union 並集 集合運算 1.union all集合運算 該集合運算返回在輸入的多集 現的所有行,它實際上不會對行進行比較,也不會刪除重複行。假設查詢query1返回m行,查詢query2返回n行,則該集合運算後返回 m n 行 1 select country,region,city fromh...
集合運算 並 交 差運算
已知所給集合 a 和 b,求 a 與 b 的並集 c c a b 已知所給集合 a 和 b,求 a 與 b 的交集 c c a b 已知所給集合 a 和 b,求 a 與 b 的差集 c c a b 離散數學中的簡單的集合運算,由c語言編寫,思路非常簡單,如下 include intinterecti...