UVALive 6659 Dromicpalin Substrings
2015-09-15 22:10
309 查看
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=48741
题意:求字符串有多少个连续字串可以重组成回文串。
题解:直接求出字母个数的前缀和,再枚举区间判断字母个数为奇数个的是否小于等于1.
题意:求字符串有多少个连续字串可以重组成回文串。
题解:直接求出字母个数的前缀和,再枚举区间判断字母个数为奇数个的是否小于等于1.
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1005; int T; char s ; int len,cnt[30] ; int main() { #ifdef ONLINE_JUDGE #else freopen("test.in", "r", stdin); #endif int ca=1; scanf("%d",&T); while(T--) { scanf("%s",s+1); len=strlen(s+1); memset(cnt,0,sizeof(cnt)); for(int i=1; i<=len; i++) { cnt[s[i]-'a'][i]=cnt[s[i]-'a'][i-1]+1; for(int j=0; j<26; j++) { if(j!=s[i]-'a') { cnt[j][i]=cnt[j][i-1]; } } } int ans=0; for(int i=1; i<=len; i++) { for(int j=i; j<=len; j++) { int odd=0; for(int k=0; k<26; k++) { if((cnt[k][j]-cnt[k][i-1])&1) { odd++; } } if(odd<=1) { ans++; } } } printf("Case %d: %d\n",ca++,ans); } return 0; }
相关文章推荐
- 解决浮点数自动取整问题
- POJ1151Atlantis【离散化+扫描线+线段树】
- iOS学习 用代码实现界面
- axis2-1.6.2+spring3.1.4 发布 webservice 客户端调用总结
- UITableViewCell和UICollectionView的几种动画
- word
- 视频(多媒体) MediaPlayer,camera
- 格式验证、密码加密
- 第三天 音乐播放器
- Linux 内核的同步机制,第 1 部分 + 第二部分(转)
- 记一次性能优化经历
- 当心!这八类人容易被癌症盯上
- 游戏中为何没有“金庸著”?
- GMT5.1.2_基础_世界底图的绘制
- 2015秋季校园招聘 IT公司笔试题
- HTML 文本格式化
- GOF23设计模式之 建造者模式
- extern 和 static 对变量的作用
- 堆和栈的区别
- 第6章 枚举和注解