Problem A: 字符串“水”题(二进制存储)
来源:互联网 发布:学北京话软件 编辑:程序博客网 时间:2024/06/10 18:07
给出一个字符串,求有多少个连续字串中所有的字母都出现了偶数次。(长度是1e6级的,别想爆O(∩_∩)O~)
思路:利用异或运算的特点,从前往后扫描每次更新当前的二进制数组,如果更新后的二进制数组之前出现过,那么次数一定在map中,奇数次和奇数次可以抵消,偶数次直接(不知道怎么说),每次求和就可以了。
#include <bits/stdc++.h>using namespace std;const int maxn = 1000000;typedef long long ll;char s[maxn];map<int,int> Map;int main(){ int n; cin >> n; while(n--) { Map.clear(); scanf("%s",s);// cout << "s:" << s<< endl; Map[0]=1; ll k=0; ll ans = 0; int len = strlen(s); for(int i=0;i<len;i++) { k ^= 1<<(s[i]-'a'); ans+= Map[k]; Map[k]++; } cout << ans <<endl; } return 0;}
0 0
- Problem A: 字符串“水”题(二进制存储)
- 山科校赛 Problem A: 字符串“水”题(状态压缩)
- A - The Hardest Problem Ever(字符串模拟题)
- Problem A: 字符串类(I)
- Problem A: 字符串类(I)
- Problem A: 字符串类(I)
- 字符串的二进制存储读取
- A+B Problem(水)
- NYOJ 524 A-B Problem (字符串&大数)
- A + B Problem II(利用字符串进行四则运算)
- A DP Problem (字符串处理+模拟)
- Nyoj 844 A+B Problem[字符串逆序]
- hdu_3819 A and B Problem (字符串)
- A+1 Problem(字符串计算进位)
- 524 A-B Problem【字符串处理】
- Problem A: 输入字符串以及输出
- Problem A: 输入字符串以及输出
- Problem A: 输入字符串以及输出
- Mathematica 技术领域3
- Huffman编解码
- jQuery 遍历函数 ,javascript中的each遍历
- CodeForces 633 A.Ebony and Ivory(水~)
- PES,TS,PS,RTP等流的打包格式解析之PES流
- Problem A: 字符串“水”题(二进制存储)
- 敏俊物联MJIOT-AMB-02 RTL8195M 高性能wifi模块
- linux less查看日志信息
- Unity3D动态读取外部MP3文件给AudioSource
- Eclipse Switch WorkSpace 历史记录
- 【C语言 数据结构】栈的极简实现
- AngularJS2 学习笔记(一)
- i am stuck
- Linux的SOCKET编程详解