C - Sonya and Queries
不用字典树进行维护,直接状压用数组保存就可以了。
#include <map> #include <set> #include <cstdio> #include <cstring> #include <sstream> #include <algorithm> #include <queue> #include <iostream> #include <stack> #include <cmath> #include <string> #include <vector> #include <cstdlib> //#include <bits/stdc++.h> //#define LOACL #define space " " using namespace std; typedef long long LL; //typedef __int64 Int; typedef pair<int, int> paii; const int INF = 0x3f3f3f3f; const double ESP = 1e-5; const double PI = acos(-1.0); const int MOD = 1e9 + 7; const int MAXN = 100000 + 10; LL num[1 << 19], a; int main() { int T; char op; memset(num, 0, sizeof(num)); scanf("%d", &T); while (T--) { getchar(); scanf("%c%lld", &op, &a); LL bit = 0; for (int i = 0; i < 18; i++) { bit |= ((a % 10) & 1) << i, a /= 10; } if (op == '+') num[bit]++; else if (op == '-') num[bit]--; else printf("%d\n", num[bit]); } return 0; }