1001: 字符串“水”题

时间限制: 1 Sec  内存限制: 128 MB
提交: 210  解决: 39
[提交][状态][讨论版]

题目描述

给出一个长度为 n 的字符串(1<=n<=100000),求有多少个连续字串中所有的字母都出现了偶数次。 

输入

第一行一个正整数 T,表示数据组数(1 <= T <= 10)。 
接下来 T 行,每行有一个只包含小写字母的字符串。 

输出

每个答案输出满足要求字符串个数。每个答案占一行。

样例输入

3
a
aabbcc
abcabc

样例输出

0
6
1

提示

这道题挺不错的,

用二进制的低0-25位分别保存'a'-'z'出现的次数,然后根据相同状态统计,

见代码,

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 map<int,int>mmap;
 4 char str[100010];
 5 int main ()
 6 {
 7     int T;
 8     scanf("%d",&T);
 9     while(T--) {
10         mmap.clear();
11         scanf("%s",str);
12         int len = strlen(str);
13         int state=0;
14         long long sum=0;
15         for(int i=0; i<len; i++) {
16             state^=(1<<(str[i]-'a'));
17             if(state==0) {
18                 sum++;
19             }
20             sum+=mmap[state];
21             mmap[state]++;//相同状态出现次数
22         }
23         printf("%lld\n",sum);
24     }
25     return 0;
26 }

后来可能数据加强了,上面代码超时了。

优化一下,先哈希然后存map,

 1 #include <bits/stdc++.h>
 2 #define maxn 34567
 3
 4 using namespace std;
 5 typedef long long LL;
 6
 7 char str[110000];
 8 map<int,int>sk[maxn];
 9 void solve()
10 {
11     for(int i=0;i<maxn;i++)
12         sk[i].clear();
13     int len=strlen(str);
14     int ret=0;
15     LL ans=0;
16     sk[0][0]=1;
17     for(int i=0; i<len; i++)
18     {
19         int now=str[i]-'a';
20         ret^=(1<<now);
21         ans+=sk[ret%maxn][ret];
22         sk[ret%maxn][ret]++;
23     }
24     printf("%lld\n",ans);
25 }
26
27 int main()
28 {
29     int T;
30     scanf("%d%*c",&T);
31     while(T--)
32     {
33         scanf("%s",str);
34         solve();
35     }
36     return 0;
37 }

View Code

转载于:https://www.cnblogs.com/bofengyu/p/6790545.html

1001 字符串“水”题(二进制,map,哈希)相关推荐

  1. 字符串水题——相对分子质量

    问题 G: 相对分子质量 时间限制: 1 Sec  内存限制: 32 MB 提交: 5  解决: 5 [提交][状态][讨论版] 题目描述 小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成 ...

  2. Coderforces 字符串水题合集

    今天我们聊聊 Coderforces 字符串水题合集. 字符串就是string. 这是string的百度翻译,我们要谈的是画框的.↓ string是C++.java.VB等编程语言中的字符串,字符串是 ...

  3. 【nyoj - 890】 分东西 (水题 二进制)

    题干: 分东西 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 输入 第一行输出一个数i表示有i组情况(0<i<=10) 接下来的i行,每一行输入两个个数M(0&l ...

  4. Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks 字符串水题

    A. Kyoya and Photobooks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  5. [2020.10.30NOIP模拟赛]字符串水题【SA,树状数组】

    正题 题目大意 一个字符串SSS. 若干个询问,每次询问一个串TTT和l,rl,rl,r.询问有多少个TTT和SSS的公共子串满足和为[l,r][l,r][l,r] 解题思路 考虑枚举子串左端,那么右 ...

  6. codeforces 112APetya and Strings(字符串水题)

    A. Petya and Strings 点击打开题目 time limit per test 2 seconds memory limit per test 256 megabytes input ...

  7. 【CCCC】L2-021 点赞狂魔 (25分),,模拟水题,map数组,间接排序

    problem L2-021 点赞狂魔 (25分) 微博上有个"点赞"功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了 ...

  8. hdu 1800 字符串水题 可用字符串hash 字典树做 我用了最水的排序水过

    具体详解 http://www.cnblogs.com/liqiangqiang/articles/2722116.html 转载于:https://www.cnblogs.com/liqiangqi ...

  9. codeforces 133A HQ9+(字符串水题)

    A. HQ9+ 点击打开题目 time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

最新文章

  1. (1)java虚拟机概念和结构图
  2. vim的巧用---对比操作
  3. 【渝粤教育】国家开放大学2018年春季 8659-22T计算机平面设计(1)(2) 参考试题
  4. 字节流写数据搭配异常处理
  5. 搭建tidb集群linux_无服务器计算,学习Go,Linux系统恢复,TiDB,Udev等
  6. MyBatis框架笔记02:接口方式使用MyBatis
  7. Real-time HTML Editor (实时网页编辑器)
  8. 台式linux桌面远程链接华为云windows服务器桌面
  9. VC 6.0 : Cannot open include file: 'streambuf': No such file or directory !!
  10. 给一个网址传递参数,并接收返回的参数
  11. 优化算法 | 多车型车辆路径问题-初始解构造方法
  12. 口袋小精灵JAVA版下载_口袋小精灵200合一
  13. 标注的尺寸避让lisp_AutoCAD中尺寸公差的自动标注 一短小AutoLISP程序轻松实现.doc...
  14. 折腾nock给jsonp进行单元测试
  15. 药品大湾区分中心牵手易臣,OA系统助力机构高效办公
  16. 将字符串中的数字字符转换为对应的数字,并且求和输出
  17. NTFS的忠实秘书—USN日志
  18. java license机制dll_(转)使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...
  19. 关于图文识别功能相关技术的大致实现
  20. 贝叶斯系列:(三)贝叶斯网络

热门文章

  1. Java消息中间件(activeMQ)
  2. python脚本画pie饼图_python 使用matplotlib.pyplot.pie绘制饼图
  3. python telnet 交互_用Python怎么telnet到网络设备
  4. Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算
  5. 计算机应用基础2016高起专,计算机应用基础-2016年秋季《计算机应用基础(高起专)》期末考核(20210407163441).pdf...
  6. java窗口代码_Java系列教程day01——java的搭建环境
  7. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
  8. php实现小说字典功能_四十章 PHP实现获取并生成数据库字典的方法
  9. android自定义minitype,MiniType部类以及扩展名
  10. android studio小案例代码,AndroidStudio开发小相册实例