7 4 1 set 集合的「交」與「並」

2021-10-08 05:50:41 字數 1656 閱讀 2899

7-4-1 set 集合的「交」與「並」

給出兩個由數字組成的集合,請求這兩個集合的「交」和「並」。

輸入格式:

給乙個n,m 代表兩個數列的大小 (0 <= n,m <=2e5)

如果n>0,則接下來一行, n個數空格隔開,代表第乙個集合中的數。

如果m>0,則接下來一行, m個數空格隔開,代表第二個集合中的數。

-1e9<=ai,bi<=1e9

輸出格式:

第一行首先輸出兩個數列交的集合中元素個數,如果元素個數大於0,則緊接著在這行輸出「交集」的元素,按數值大小公升序排列(本行輸出多個資料時,用空格隔開,如果只有乙個元素個數,行末無空格)

第二行首先輸出兩個數列並的集合中元素個數,如果元素個數大於0,則緊接著在這行輸出「並集」的元素,按數值大小公升序排列(本行輸出多個資料時,用空格隔開,如果只有乙個元素個數,行末無空格)

輸入樣例1:

131

134

輸出樣例1:

113

134

輸入樣例2:

131

234

輸出樣例2:

041

234

**如下:

用的set【集合】內部自動有序且不含重複元素的容器

用的set的函式:求集合的交集set_intersection;求集合的並集set_union。這些函式的五個引數是:集合a的begin,end;集合b的begin,end和back_inserter()函式

向某大佬的題解學習的?集合運算

#include

using

namespace std;

void

print

(vector<

int>

&v)}

intmain()

while

(m--

)set_intersection

(a.begin()

,a.end()

,b.begin()

,b.end()

,back_inserter

(v1));

print

(v1)

; cout << endl;

set_union

(a.begin()

,a.end()

,b.begin()

,b.end()

,back_inserter

(v2));

print

(v2)

;return0;

}

總結:

1.set求集合差集的函式set_difference

astar 集合的交與並

時間限制 1000ms 記憶體限制 65536kb 描述 對於乙個閉區間集合 k 1,ai aj 我們定義其權值 w a1 a2 ak a1 a2 ak 其中 x 表示x區間的長度 如果x為空集 x 0。當然,如果這些閉區間沒有交集則權值為0。給定n個各不相同的閉區間,請你從中找出若干個 至少2個 ...

計算集合的並 set

給你兩個集合,計算其並集,即 注 中不允許出現重複元素,但是 與之間可能存在相同元素。輸入格式 輸入資料分為三行,第一行有兩個數字n,m 0 n,m 10000 分別表示集合 a 和集合 b 的元素個數。後兩行分別表示集合 a 和集合 b。每個元素為不超出 int 範圍的整數,每個元素之間用乙個空格...

set集合的排序

在hibernate的onetomany的實體關聯的時候,one端的set是無序的,可是需要按照順序來搞的話就比較麻煩了。下面給出乙個例子。setdiarypictureset growthdiary.getdiarypictures listdiarypicturelist new arrayli...