我的第一个:uva12096-解题思路

来源:互联网 发布:拍拍贷网络最新黑名单 编辑:程序博客网 时间:2024/05/12 15:26

准确点讲,这道题不是我自己写出来,我先照着书上的代码敲了一遍,然后搞懂了思路: - 首先, 这道题最重要的是,应该想到:对每一个集合起一个特定的id,每一个集合应该是一个set<int>,其中的int是为了存储该集合中的每一个集合的id.  - 然后应该设置一个map,用来将每一个集合更它相对应的id结合起来,即map<set<int>, int>,再就是用一个vector把这些每一个大的包含其他元素的集合的id结合起来。所以就有三个结构。还有就是对于设置id的实现,map中是没有重复的,用map的count方法去查找是否有集合,有的话就返回ID,没有的话加入一个新的id。之后要对五个命令进行分析,dup和push,是两个简单操作,利用stack可以很简单的实现,union和insection和and这三个相对来讲复杂一点,但操作名称也给了一定的提示,可以想到algorithm头文件中的set_union和set_insection操作,这两个是对集合的操作。先草草写这么多吧!----------来自一个心比天高的傻子。


原创粉丝点击