CF1913C 题解
题目传送门
1. ADD
对于插入操作,使用一个桶来记录即可。
2. GET
首先,两个
所以将给定的
为了方便,用一个变量
统计到第
注意枚举的位数要够多,询问之间互相独立。
Code
#include <iostream>
using namespace std;
const int N = 35;
int S[N];
void get(int x)
{
int sum = 0;
for (int i=0;i<=30;i++)
{
sum += S[i];
if (x >> i & 1)
{
if (!sum)
{
puts("NO");
return;
}
else
sum --;
}
sum >>= 1;
}
puts("YES");
}
int main()
{
int m;
scanf("%d", &m);
while (m--)
{
int op, x;
scanf("%d%d", &op, &x);
if (op == 1)
S[x] ++;
else
get(x);
}
return 0;
}