1001 字符串“水”题(二进制,map,哈希)
1001: 字符串“水”题
时间限制: 1 Sec 内存限制: 128 MB
提交: 210 解决: 39
[提交][状态][讨论版]
题目描述
输入
接下来 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,哈希)相关推荐
- 字符串水题——相对分子质量
问题 G: 相对分子质量 时间限制: 1 Sec 内存限制: 32 MB 提交: 5 解决: 5 [提交][状态][讨论版] 题目描述 小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成 ...
- Coderforces 字符串水题合集
今天我们聊聊 Coderforces 字符串水题合集. 字符串就是string. 这是string的百度翻译,我们要谈的是画框的.↓ string是C++.java.VB等编程语言中的字符串,字符串是 ...
- 【nyoj - 890】 分东西 (水题 二进制)
题干: 分东西 时间限制:1000 ms | 内存限制:65535 KB 难度:1 输入 第一行输出一个数i表示有i组情况(0<i<=10) 接下来的i行,每一行输入两个个数M(0&l ...
- 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 ...
- [2020.10.30NOIP模拟赛]字符串水题【SA,树状数组】
正题 题目大意 一个字符串SSS. 若干个询问,每次询问一个串TTT和l,rl,rl,r.询问有多少个TTT和SSS的公共子串满足和为[l,r][l,r][l,r] 解题思路 考虑枚举子串左端,那么右 ...
- codeforces 112APetya and Strings(字符串水题)
A. Petya and Strings 点击打开题目 time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 【CCCC】L2-021 点赞狂魔 (25分),,模拟水题,map数组,间接排序
problem L2-021 点赞狂魔 (25分) 微博上有个"点赞"功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了 ...
- hdu 1800 字符串水题 可用字符串hash 字典树做 我用了最水的排序水过
具体详解 http://www.cnblogs.com/liqiangqiang/articles/2722116.html 转载于:https://www.cnblogs.com/liqiangqi ...
- codeforces 133A HQ9+(字符串水题)
A. HQ9+ 点击打开题目 time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
最新文章
- (1)java虚拟机概念和结构图
- vim的巧用---对比操作
- 【渝粤教育】国家开放大学2018年春季 8659-22T计算机平面设计(1)(2) 参考试题
- 字节流写数据搭配异常处理
- 搭建tidb集群linux_无服务器计算,学习Go,Linux系统恢复,TiDB,Udev等
- MyBatis框架笔记02:接口方式使用MyBatis
- Real-time HTML Editor (实时网页编辑器)
- 台式linux桌面远程链接华为云windows服务器桌面
- VC 6.0 : Cannot open include file: 'streambuf': No such file or directory !!
- 给一个网址传递参数,并接收返回的参数
- 优化算法 | 多车型车辆路径问题-初始解构造方法
- 口袋小精灵JAVA版下载_口袋小精灵200合一
- 标注的尺寸避让lisp_AutoCAD中尺寸公差的自动标注 一短小AutoLISP程序轻松实现.doc...
- 折腾nock给jsonp进行单元测试
- 药品大湾区分中心牵手易臣,OA系统助力机构高效办公
- 将字符串中的数字字符转换为对应的数字,并且求和输出
- NTFS的忠实秘书—USN日志
- java license机制dll_(转)使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...
- 关于图文识别功能相关技术的大致实现
- 贝叶斯系列:(三)贝叶斯网络
热门文章
- Java消息中间件(activeMQ)
- python脚本画pie饼图_python 使用matplotlib.pyplot.pie绘制饼图
- python telnet 交互_用Python怎么telnet到网络设备
- Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算
- 计算机应用基础2016高起专,计算机应用基础-2016年秋季《计算机应用基础(高起专)》期末考核(20210407163441).pdf...
- java窗口代码_Java系列教程day01——java的搭建环境
- python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
- php实现小说字典功能_四十章 PHP实现获取并生成数据库字典的方法
- android自定义minitype,MiniType部类以及扩展名
- android studio小案例代码,AndroidStudio开发小相册实例