突然转进到第五章的low题目的原因是做到图论了(紫书),然后惊喜的发现第一题就做不出来。那么里面用到了这一题的思想,我们就先解决这题。当然,dp必须继续做下去,这是基本功。断不得。

题意分析

这条题真的是一条sb模拟题。但是我们还是可以学些什么:一,标id的思想(后面用到了,就是那条UVa12219)。二,set的基本操作。具体思路看代码。但是这题哪里有什么算法...set 和 map 混合应用,真的用板子写的话代码相近度很高

代码

#include <bits/stdc++.h>#define NQUICKIO
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define REP(x) for(int i=0;i!=(x);++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;map<set<int>, int> m;
vector<set<int> > idxm;
inline int ID(set<int>& _s)
{if(m.find(_s)!=m.end()) return m[_s];idxm.push_back(_s);return m[_s]=idxm.size()-1;
}int main()
{
#ifdef QUICKIOios::sync_with_stdio(false);cin.tie(0); cout.tie(0);
#endifint kase; cin>>kase;while(kase--){m.clear();stack<int> s;int n; cin>>n;for(int i=1;i<=n;++i){string tmpstr; cin>>tmpstr;if(tmpstr[0]=='P'){set<int> tmp;s.push(ID(tmp));}else if(tmpstr[0]=='D')s.push(s.top());else{auto s1=idxm[s.top()]; s.pop();auto s2=idxm[s.top()]; s.pop();set<int> tmps;if(tmpstr[0]=='U')set_union(ALL(s1),ALL(s2),INS(tmps));if(tmpstr[0]=='I')set_intersection(ALL(s1),ALL(s2),INS(tmps));if(tmpstr[0]=='A'){tmps=s2; tmps.insert(ID(s1));}s.push(ID(tmps));}cout<<idxm[s.top()].size()<<endl;}cout<<"***"<<endl;}return 0;
}

转载于:https://www.cnblogs.com/samhx/p/UVa-12096.html

【紫书】(UVa12096) The SetStack Computer相关推荐

  1. UVA12096 - The SetStack Computer(set + map映射)

    UVA12096 - The SetStack Computer(set + map映射) 题目链接 题目大意:有五个动作: push : 把一个空集合{}放到栈顶. dup : 把栈顶的集合取出来, ...

  2. UVa12096.The SetStack Computer

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. 12096 - The SetStack Computer

    The SetStack Computer PS:因为该题排版较麻烦,这里给出OJ网址:UVa12096 - The SetStack Computer 有一个专门为了集合运算而设计的"集合 ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. UVa 1339,紫书P73,词频

    题目链接:https://uva.onlinejudge.org/external/13/1339.pdf 紫书P73 解题报告: #include <stdio.h> #include ...

  6. The SetStack Computer

    原题及翻译 Background from Wikipedia: "Set theory is a branch of mathematics created principally by ...

  7. 11行代码AC——比紫书优化,例题2-3 近似计算——解题报告

    励志用更少的代码做高效的表达 题意: 计算π/4 = 1 - 1/3 + 1/5 - 1/7 + -,直到最后一项小于10^-6. 思路分析: 本题很简单,因此计算重心从解题转化为优化. 本题为重复计 ...

  8. 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告

    题意: 丑数是一些因子只有2,3,5的数.数列1,2,3,4,5,6,8,9,10,12,15--写出了从小到大的前11个丑数,1属于丑数.现在请你编写程序,找出第1500个丑数是什么. 没有输入 输 ...

  9. UVA - 12096:The SetStack Computer

    题目描述很简单,难点在于如何对集合进行编码,因为是无限的,好像没有一个方向进行编码. 紫书给的题解十分巧妙:给新出现的集合进行编码 的确,我们没有必要为所有可能出现的集合编码后再开始,我们就可以简单的 ...

最新文章

  1. HEVC算法和体系结构:环路滤波技术
  2. 用shell脚本实现定时备份数据库
  3. 2.1.5 线程概念和多线程模型
  4. linux下mysql数据库目录迁移_linux下mysql数据库目录迁移问题
  5. 关于DruidStatView监控信息
  6. (转)【SpringMvc】如何使用form发送PUT和DELETE请求
  7. html响应式布局平移,jQuery图片内部缩放和平移插件jquery.zoom.js
  8. 网络协议 22 - RPC 协议(下)- 二进制类 RPC 协议
  9. 【node】-----简单介绍 nodejs
  10. python库-密码学库pynacl
  11. JavaScript文档,JQuery文档,CSS中文文档下载
  12. 2022全新二开影视源码app源码完整版
  13. 转载:【Gradle教程】Gradle 基础入门
  14. matlab rms数据滤波,与RMS相关的5个信息,如何通过RMS结果滤波来提高精度
  15. 第十章 项目沟通管理和干系人管理
  16. 外卖CPS小程序部署指南,个人获取美团外卖小程序跳转链接
  17. Java个人支付宝知宝收款调用_Andriod 监听微信支付宝收款实现个人支付宝支付接口!附安卓 App(开源)...
  18. 有符号数和无符号数的范围
  19. 向假视频宣战!研究人员开发出了鉴定假视频的“照妖镜”
  20. Sobel算子的数学基础

热门文章

  1. 编写一个Java程序实现多线程,在线程中输出线程的名字,隔300毫秒输出一次,共输出20次。
  2. c语言 freopen txt_C语言的文件操作 freopen
  3. 利用cad计算型材的弹性模量_型材截面特性的CAD计算方法
  4. 列名 userid 不明确。 表结构_SQL-Server(三)表的创建和操作
  5. python3语法错误python_关于在python3.7当中的语法错误!
  6. Combating Adversarial Misspellings with Robust Word Recognition
  7. leetcode 链表1
  8. R2: 已解释和未解释的方差
  9. 用友CDM系统期初导入商品资料经验
  10. linux每个任务运行时间,Linux基础教程:任务计划和周期性任务