codeforces 713 A. Sonya and Queries
2016-09-16 23:12
344 查看
题意:
有一个整数多重集合,对这个集合有三种操作:
1.+ a 在集合里面添加一个元素a
2.- a 在集合里面减少一个元素a
3.? x 询问集合里面满足条件a的元素有多少个
其中x仅由0,1组成1代表这个位置上一定为奇数,0代表为偶数,长度不相等补0
分析:
仔细想想其实询问与数字是多少没有关系,而是和位置上的奇偶有关,那么假设奇数为1,偶数为0,那么每个数字就映射成了一个二进制数,接下来就用map随便搞搞了
有一个整数多重集合,对这个集合有三种操作:
1.+ a 在集合里面添加一个元素a
2.- a 在集合里面减少一个元素a
3.? x 询问集合里面满足条件a的元素有多少个
其中x仅由0,1组成1代表这个位置上一定为奇数,0代表为偶数,长度不相等补0
分析:
仔细想想其实询问与数字是多少没有关系,而是和位置上的奇偶有关,那么假设奇数为1,偶数为0,那么每个数字就映射成了一个二进制数,接下来就用map随便搞搞了
#include<cstring> #include<string> #include<iostream> #include<queue> #include<cstdio> #include<algorithm> #include<map> #include<cstdlib> #include<cmath> #include<vector> //#pragma comment(linker, "/STACK:1024000000,1024000000"); using namespace std; #define INF 0x3f3f3f3f map<long long,int>mp; int main() { int t; cin>>t; while(t--) { char s[3],a[35]; cin>>s>>a; int len=strlen(a),p=1; long long tag=0; for(int i=len-1;i>=0;i--) { if((a[i]-'0')%2) tag+=p; p*=2; } if(s[0]=='+') { mp[tag]++; } else if(s[0]=='-') { mp[tag]--; } else { cout<<mp[tag]<<endl; } } return 0; }
相关文章推荐
- codeforces 714C Sonya and Queries [思维]【STL】
- codeforces 714C. Sonya and Queries (思维题)
- codeforces 713A A. Sonya and Queries(状态压缩)
- CodeForces-714C. Sonya and Queries(状压优化)
- CodeForces 713A|Sonya and Queries|字典树|没方法
- CodeForces-714C - Sonya and Queries【状压 】
- Codeforces 713 C Sonya and Problem Wihtout a Legend
- codeforces-371-C. Sonya and Queries
- 【CodeForces】713 C. Sonya and Problem Wihtout a Legend
- Codeforces 371C - Sonya and Queries(思维)
- Sonya and Queries CodeForces - 714C (map映射)
- Codeforces 741C Sonya and Queries(字典树)
- CodeForces 714C Sonya and Queries(字典树/思维)
- [堆与斜率] Codeforces 713C - Sonya and Problem Wihtout a Legend
- 【CodeForces】713 D. Animals and Puzzle 动态规划+二维ST表
- Codeforces Round #371 (Div. 2) C. Sonya and Queries (map)
- Codeforces Round #371 (Div. 2) C. Sonya and Queries
- Codeforces-713C-Sonya and Problem Wihtout a Legend
- Codeforces Round #371 (Div. 2)C. Sonya and Queries
- codeforces 221 div1 D Tree and Queries