好简单一题。考虑到弱化版只有添加和查询没有删除,因此对于每一个相同的 随时间推移答案肯定单调不降。所以直接用 set 维护当前所有出现过的数,然后用 map 暴力维护每一个 当前的答案即可。更新的时候无需维护,只需要在查询的时候直接暴力往上跳答案即可。没有什么手法。
namespace ttq012 {
const int N = 500100;
void run() {
set<int> se;
map<int, int> mp;
int q;
cin >> q;
while (q--) {
char o;
int v;
cin >> o >> v;
if (o == '+') {
se.emplace(v);
} else {
if (!mp.count(v)) mp[v] = v;
while (se.count(mp[v])) mp[v] += v;
cout << mp[v] << '\n';
}
}
}
}
喜欢的话,留下你的评论吧~