博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
T4-咕咕东学英语(模拟题
阅读量:3950 次
发布时间:2019-05-24

本文共 827 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
题目解析

首先让ans最大组合取ans=n*(n-1)/2.

因为有这样一个字符串,它的每一个字符都属于一个长度大于1的回文子串中
所以回文子串组合,比如长度为5的字符串
最多的子串组合,无非是
s1s2 s1s2s3 s1s2s3s4 s1s2s3s4s5
s2s3 s2s3s4 s2s3s4s5
s3s4 s3s4s5
s4s5
所以最多共有1+2+···+n-1=n*(n-1)/2
然后进行删减,因为只有A,B两个字符,所以对于每一段相同的字母,且满足长度大于1的情况下,用tp记录下当前它的长度,那么顺着遍历和逆着遍历,直到去掉所有不满足条件的子串

Codes

#include
#include
#define ll long longusing namespace std;int main(){
ll n, ans; string str; cin >> n; cin >> str; ans = n * (n - 1) / 2; int tp = 0, tmp = 0; for (int i = 1; i < n;i++){
if(str[i-1]!=str[i]){
ans -= (i - tp); tp = i; tmp++; } } ans += tmp;tp = n - 1; for (int i = n - 2; i >=0;i--){
if(str[i]!=str[i+1]){
ans -= (tp - i); tp = i; } } cout << ans << endl; return 0;}

转载地址:http://qdwzi.baihongyu.com/

你可能感兴趣的文章
为你分享73篇论文解决深度强化学习的18个关键问题
查看>>
28 款 GitHub 最流行的开源机器学习项目(附地址)
查看>>
从零开始教你训练神经网络(附公式&学习资源)
查看>>
计算机视觉这一年:这是最全的一份CV技术报告
查看>>
推荐9个软件神器,26个网站,让你PPT更加风骚
查看>>
网易云音乐刷了我的过去...
查看>>
物联网产业链全景图及8大环节超详解读
查看>>
快讯丨工信部发布《促进新一代人工智能产业发展三年行动计划(2018-2020年)》
查看>>
微信跳一跳技术手段高分秘籍;竟还可以伪造POST请求刷分
查看>>
【含代码】Python爬虫实战:爬取全站小说排行榜
查看>>
总结过去2017年最受欢迎的十大机器学习Python库
查看>>
恕我直言,你可能被支付宝账单预测关键词骗了!
查看>>
2018年春运火车票今天开售,手把手教你用Python抢票回家过年....
查看>>
【精华】大数据在营销中的6大优势
查看>>
炫!把你的生活轨迹用大数据展示后.......惊呆了~
查看>>
透过震惊世界的数据,探索中国数字化生态及潜力
查看>>
开发者必读:计算机科学中的线性代数(附论文)
查看>>
大数据下的帝都魔都的爱恨情仇
查看>>
GitHub最著名的20个Python机器学习项目!
查看>>
小白都能看懂的神经网络入门,快收下吧~
查看>>