The SetStack Computer UVA - 12096 集合栈计算机 set集合
生活随笔
收集整理的這篇文章主要介紹了
The SetStack Computer UVA - 12096 集合栈计算机 set集合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接
有一個專門為了集合運算而設計的“集合棧”計算機。該機器有一個初始為空的棧,并且
支持以下操作。
- PUSH:空集“{}”入棧。
- DUP:把當前棧頂元素復制一份后再入棧。
- UNION:出棧兩個集合,然后把二者的并集入棧。
- INTERSECT:出棧兩個集合,然后把二者的交集入棧。
- ADD:出棧兩個集合,然后把先出棧的集合加入到后出棧的集合中,把結果入棧。
每次操作后,輸出棧頂集合的大小(即元素個數)。例如,棧頂元素是A={{},
{{}}},下一個元素是B={{},{{{}}}},則:
- UNION操作將得到{{},{{}},{{{}}}},輸出3。
- INTERSECT操作將得到{{}},輸出1。
- ADD操作將得到{{},{{{}}},{{},{{}}}},輸出3。
輸入不超過2000個操作,并且保證操作均能順利進行(不需要對空棧執行出棧操作)。
【分析】
本題的集合并不是簡單的整數集合或者字符串集合,而是集合的集合。為了方便起見,此處為每個不同的集合分配一個唯一的ID,則每個集合都可以表示成所包含元素的ID集合,這樣就可以用STL的set<int>來表示了,而整個棧則是一個stack<int>。?
?
總結
以上是生活随笔為你收集整理的The SetStack Computer UVA - 12096 集合栈计算机 set集合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 先选价、再叫车 高德打车首创上线“比价叫
- 下一篇: STM32 printf 输出到usar