http://agc019.contest.atcoder.jp/tasks/agc019_b

一开始的做法是,

用总数减去回文子串数目,因为回文子串怎么翻转都不影响答案。

然后,如果翻转afucka,那么和翻转fuck,得到的串是一样的。

但是如果是先是用total - 回文子串数目,再减去afucka这样的,一头一尾相同,但是又不是回文串的字符串,复杂度要O(n^2)

考虑到回文串也是一头一尾相同的,那么相当于翻转一头一尾不相同的字符串才能得到新的贡献

相当于total - (一头一尾相同的)

#include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;
const int maxn = * + ;
char str[maxn];
int num[maxn];
void work() {
scanf("%s", str + );
int lenstr = strlen(str + );
LL ans = 1LL * lenstr * (lenstr - ) / + ;
for (int i = ; i <= lenstr; ++i) {
num[str[i]]++;
}
for (int i = 'a'; i <= 'z'; ++i) {
ans -= 1LL * num[i] * (num[i] - ) / ;
}
cout << ans << endl;
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return ;
}

最新文章

  1. three.js加入监控
  2. Js的引用关系示例和总结
  3. liunx 服务内存消耗100% 怎么处理
  4. Python 读书系列
  5. Mac OS X Yosemite 10.10 配置 Apache+PHP 教程注意事项
  6. TestNG目录
  7. JQUERY1.9学习笔记 之内容过滤器(三) has选择器
  8. Locally weighted linear regression(局部加权线性回归)
  9. [原]node.js使用感想
  10. apache在window server 2003下的安全配置
  11. Git通过密钥对远程仓库上传和更新详细操作
  12. Python爬虫之多线程下载豆瓣Top250电影图片
  13. A1124. Raffle for Weibo Followers
  14. 定时调度篇之Quartz.Net详解(被替换)
  15. DataStream_操作基本类型数据的流对象
  16. java基本数据结构和算法
  17. 十个强大的DevOps基础设施自动化工具,不容错过
  18. C#基础第六天-作业-利用面向对象的思想去实现名片
  19. fb 发布桌面应用图标
  20. ORB_SLAM2 源码阅读 ORB_SLAM2::Initializer

热门文章

  1. JZOJ 1003【东莞市选2007】拦截导弹——dp
  2. Poj 1936,3302 Subsequence(LCS)
  3. HDU1698(线段树入门题)
  4. Springboot监控之一:SpringBoot四大神器之Actuator之2--spring boot健康检查对Redis的连接检查的调整
  5. Ruby中的%表示法
  6. Android中EditTex焦点设置和弹不弹出输入法的问题(转)
  7. java基础知识(4)---设计模式
  8. linux命令-yum工具详解
  9. ServerSocket01
  10. java对单向单向链表的操作