数字盒子

问题描述:
你有一个盒子,你可以往里面放数,也可以从里面取出数。

初始时,盒子是空的,你会依次做 Q 个操作,操作分为两类:

插入操作:询问盒子中是否存在数 x,如果不存在则把数 x 丢到盒子里。
删除操作:询问盒子中是否存在数 x,如果存在则取出 x。

对于每个操作,你需要输出是否成功插入或删除。
输入

第一行一个正整数 Q,表示操作个数。

接下来 Q 行依次描述每个操作。每行 2 个用空格隔开的非负整数 op,x 描述一个操作:op 表示操作类型,op=1 则表示这是一个插入操作,op=2 则表示这是一个删除操作;x 的意义与操作类型有关,具体见题目描述。

数据范围

对于 100% 的数据,保证 x<10^18,Q≤5*10^5。

思路
对于≤5*10^5的数据,可以通过vector直接模拟这个过程实现要求,但对于其他数据直接暴力不行,使用哈希表实现,即将这些特别大的数据“变小”。
或者直接用set的insert,erase,find函数实现本题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章