UVa12096(集合中的集合+stl)集合栈计算机

蔚落 2024-02-17 23:58 112阅读 0赞

Center

  1. //一个集合代表一个数字,神奇的操作
  2. #include<set>
  3. #include<iostream>
  4. #include<map>
  5. #include<string>
  6. #include<vector>
  7. #include<stack>
  8. #include<algorithm>
  9. using namespace std;
  10. string str;
  11. stack<int> s;
  12. typedef set<int> Set;
  13. map<Set,int> mp;
  14. vector<Set> setcache;
  15. int ID(Set x)
  16. {
  17. //查找集合x的编号,如果没找到,就为其新建一个编号
  18. if(mp.count(x)) return mp[x];
  19. setcache.push_back(x);
  20. return mp[x]=setcache.size()-1;
  21. }
  22. int main()
  23. {
  24. int T,n;
  25. cin>>T;
  26. while(T--)
  27. {
  28. scanf("%d",&n);
  29. while(n--)
  30. {
  31. cin>>str;
  32. if(str[0]=='P') s.push(ID(Set()));//空集入栈
  33. else if(str[0]=&

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读

    相关 集合计算机

     有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始为空的栈,并且支持以下操作: PUSH:空集“\{\}”入栈 DUP:把当前栈顶元素复制一份后再入栈

    相关 C++ STL集合:set

    集合:set 集合是常用的容器。set中的所有元素都会根据元素的建值自动排序,且每个元素最多中出现一次 注意: iterator是迭代器,是STL中的重要概念,类似于指针。