CF1732D1 题解

发布时间 2023-06-17 15:40:11作者: Redefinition0726

CF1732D1 Balance 题解

题目解释

输入一个 \(op\)\(x\)\(op\)\(2\) 种情况。

  • \(op\)+,则将 \(x\) 加入到集合中。
  • \(op\)?,则找到一个最小的 \(k\),使 \(k \times x\) 不在合集中。

题目非常简单明了。

具体实现

这时,看到这句话:\(1 \le x \le 10^{18}\),所以不可能用数组实现。

这就涉及到了另一个数据结构:map

语法为:map<键的数据类型,值的数据类型>标识符;

访问方法和数组很像:标识符[键]

例子:

map<int,int>m;
m[7]=2;
printf("%d\n",m[7]);

知道这个之后就十分简单了。

可以直接用 map 进行标记。

然后 ? 的选项便可以直接用循环枚举。