Uva12096
来源:互联网 发布:盛势网络剧更新时间 编辑:程序博客网 时间:2024/06/16 03:46
题目链接
考验对STL的熟练运用
#include<iostream>#include<string>#include<set>#include<map>#include<stack>#include<vector>#include<algorithm>#include<iterator>using namespace std;#define ALL(x) x.begin(),x.end()#define INS(x) inserter(x,x.begin())int t, n;set<int> Set;map<set<int>, int > IDcache;vector<set<int>> Setcache;int ID(set<int> x){ if (IDcache.count(x)) return IDcache[x]; Setcache.push_back(x); return IDcache[x] = Setcache.size() - 1;}int main() { cin >> t; while (t--) { string op; cin >> n; stack<int> s; for (int i = 0; i < n; i++) { cin >> op; if (op[0] == 'P') s.push(ID(set<int>())); //把空集{}(就是0)入栈 else if (op[0] == 'D') { s.push(s.top()); } else { set<int> x1 = Setcache[s.top()]; s.pop(); set<int> x2 = Setcache[s.top()]; s.pop(); set<int> x; if (op[0] == 'U') set_union(ALL(x1), ALL(x2), INS(x));//并集操作 if (op[0] == 'I') set_intersection(ALL(x1), ALL(x2), INS(x));//交集操作 if (op[0] == 'A') x = x2, x.insert(ID(x1)); s.push(ID(x)); } cout << Setcache[s.top()].size() << endl; } cout << "***" << endl; } return 0;}
阅读全文
0 0
- uva12096
- uva12096
- UVa12096
- Uva12096
- uva12096心得
- UVa12096 The SetStack Computer
- UVA12096 - The SetStack Computer
- uva12096集合栈计算机
- e5-5uva12096
- UVA12096 The SetStack Computer
- UVA12096 stack computer
- Uva12096 集合栈计算机
- UVa12096 The SetStack Computer
- UVa12096 The SetStack Computer (stack)
- UVA12096 - The SetStack Computer(set + map映射)
- The SetStack Computer(UVa12096&&POJ3121) (集合栈)
- 对于UVa12096“集合的集合”的理解
- 例题5-5 集合栈计算机 UVa12096
- Python字符串常用方法收藏
- Java趣味赏玩
- 类、对象、属性、方法和事件的概念辨析
- 机器学习实战_12FP-growth算法发现高频项集
- CardStackView使用教程
- Uva12096
- SQL 查询优化 索引优化
- RecyclerView中Adapter调用notifyDataSetChanged无效时的解决方案
- 如何监控Android模拟器的HTTP访问情况
- 基本算法------贪心
- windows安装redis
- tensorflow在Windows上的安装
- 程序员开发必备的在线 网站工具
- STL中的find_if函数