uva 12096 超級難的一題..
1.set() 表示空集
2.set_union 求並集 set_intersation 求交集 用法
set_union(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));
前4個引數是兩個集合的起點終點. 然後最後乙個的插入迭代器第乙個填同型別的的東西(新生成的並集)和那個起點.begin.
交集同理
set_intersection(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin()));
3.然後是插入加入元素.
x=x2;x.insert(id(x1));
注意x.insert必須是插入有序的的組合中.
4.完整**
#includeusing namespace std;
typedef setset;
vectorsetcache; mapidcache;
int id(set x)
int main()
else if(op[0]=='i')
else s.push(id(x));
} cout<} cout<<"***"<}return 0;}
例題5 5uva12096集合棧計算機(看)
這題思想在於 轉化 用集合去套集合是明顯不行的 可能也是我菜 所以 可以給每個不一樣的集合分配乙個id,用map 那麼我們對於集合棧而言就只要存 整型 即每個集合的id即可 而那光存id沒用啊,如果用到集合咋整,所以再開個 map 用id找他所對應的集合 此時的 pull 和 dup 就解決了 還有...
UVa 12096 集合棧計算機
這題的話,我們讀入操作之後,首先對於空集就是初始化為空。我們可以使用typedef 對於 set 重新命名為set,這樣就可以直接用set 的語法進行空集的初始化了。這題主要是對於集合的處理,我們可以給集合乙個對映函式,這個函式對於已知集合就返回該id,讓主函式進行相應的操作。對於未知集合就按序存入...
uva 12096 集合棧計算機
uva 12096 集合棧計算機 題目 有乙個專門為了集合運算而設計的 集合棧 計算機。該機器有乙個初始為空的棧,並且 支援以下操作。push 空集 入棧。dup 把當前棧頂元素複製乙份後再入棧。union 出棧兩個集合,然後把二者的並集入棧。intersect 出棧兩個集合,然後把二者的交集入棧。...