题意:

咕咕东很聪明,但他最近不幸被来自宇宙的宇宙射线击中,遭到了降智打击,他的英语水平被归零了!这一切的始作俑者宇宙狗却毫不知情!

此时咕咕东碰到了一个好心人——TT,TT在吸猫之余教咕咕东学英语。今天TT打算教咕咕东字母A和字母B,TT给了咕咕东一个只有大写A、B组成的序列,让咕咕东分辨这些字母。

但是咕咕东的其他学科水平都还在,敏锐的咕咕东想出一个问题考考TT:咕咕东问TT这个字符串有多少个子串(由原字符串中位置连续的字符构成的字符串)是Delicious的。

TT虽然会做这个问题,但是他吸完猫发现辉夜大小姐更新了,不想回答这个问题,并抛给了你,你能帮他解决这个问题吗?

Delicious定义:对于一个字符串,我们认为它是Delicious的当且仅当它的每一个字符都至少属于一个长度大于1且被完整包含在这个字符串中回文子串中。

下面是一些Delicious字符串的的例子:
t=AABBB (字符t1,t2属于回文串t1…t2,字符t3,t4,t5属于回文串t3…t5)
t=ABAA(字符t1,t2,t3属于回文串t1…t3,字符t4属于回文串t3…t4)
t=AAAAA(所有字符均属于回文串t1…t5)

输入格式:
输入第一行一个正整数n,表示字符串长度
接下来一行,一个长度为n只由大写字母A、B构成的字符串。

输出格式:
输出仅一行,表示符合题目要求的子串的个数。

输入样例:

5
AABBB

输出样例:

6

思路:

在考试的时候,我一直把思路放在解决回文串上,但是这个题后四组数据是10的5次方,所以要把复杂度降到O(n)才能解决问题

这个题的特殊之处是只有A、B两种字符,而且要求字串中所有字符都属于长度至少大于1且完整的包含在这个字符串中的回文子串。这里注意!!关键点来了!!完整包含!!也就是说,对于字符串AAAB肯定不符合要求(B是单个字符,B可能不属于回文字串,就算是属于,但是不满足完整包含的条件),AAB和AB都是不符合要求的。总结来说,当出现一个与上一个字符不同的字符时,在这个字符串的子串含有这个不同字符的都不满足题意,不满足的字串的数量在本例中恰是A的数量3。

最后具体实现如下:先计算所有可能的字串(不论是否满足要求),由等差公式计算得:ans=(n-1)+(n-2)+……+1=(n*(n-1))/2,再计算不符合要求的字串得数量,这里有一个点需要注意:要从前遍历一边,从后遍历一边,找出s[i]!=s[i+1]或s[i]!=s[-1]的情况进行计算,但是,这样的话,从前遍历的AB和从后遍历的BA是同一种情况,多减了一遍,需要加上。

最后需要注意一点的是:数据类型的选择,用int会wa

代码:

#include<iostream>
#include<string>
using namespace std;
long long n,ans=0;
string s;int main(){cin>>n;cin>>s;int flag=0,t=0;     //flag是上次A,B分界处,t是AB或BA个数 ans=(n*(n-1))/2;  //所有可能组合数for(int i=0;i<n-1;i++)if(s[i]!=s[i+1]){ans-=(i+1-flag);flag=i+1;t++; }flag=n-1;for(int i=n-1;i>0;i--)if(s[i]!=s[i-1]){ans-=(flag-i+1);flag=i-1; }cout<<ans+t<<endl;        //两轮多减了t return 0;
}

CSP3--T4咕咕东学英语相关推荐

  1. 计算机研究生期间学英语,2022考研计算机程序设计:咕咕东学英语

    1.题目描述 咕咕东很聪明,但他最近不幸被来自宇宙的宇宙射线击中,遭到了降智打击,他的英语水平被归 零了!这一切的始作俑者宇宙狗却毫不知情! 此时咕咕东碰到了一个好心人--TT,TT在吸猫之余教咕咕东 ...

  2. [csp模拟2]T4——咕咕东的奇妙序列

    文章目录 题意 Input Output 输入样例 输出样例 提示 分析 总结 代码 题意 咕咕东 正在上可怕的复变函数,但对于稳拿A Plus的 咕咕东 来说,她早已不再听课,此时她在睡梦中 突然想 ...

  3. 【Week9 作业】A - 咕咕东的目录管理器、B - 东东学打牌、C - 签到题,独立思考哈

    A - 咕咕东的目录管理器 题意: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标, ...

  4. 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器

    题目描述: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从实现一个目录管理器开始 ...

  5. csp模拟测试_1 T1咕咕东的奇遇和T2咕咕东想吃饭

    T1咕咕东的奇遇 问题描述 咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环.这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a.咕咕东每次可以顺时针或者逆时针旋转一格. ...

  6. CSP补题—A—咕咕东的奇遇—B—咕咕东想吃饭

    一.A-咕咕东的奇遇 题目描述: 咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环.这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a.咕咕东每次可以顺时针或者逆时针旋转 ...

  7. [比赛|考试] 咕咕掉的一些比赛总结

    咕咕掉1:9月9日上午nowcoder tg组1 咕咕掉2:9月14日晚上wannafly (以上是没有写总结的比赛,考得都很惨,更新不更新看心情,如果有更新会在本文里更新的) 9.12 下午校内 1 ...

  8. 不让登陆_百万伙伴争代言 不让梦想咕咕叫 中国太保寿险公益活动提前117天汇聚300万颗爱心...

    2021年1月4日,中国太保旗下中国太保寿险继"首月红"大捷后再传喜讯,以"攀登30A 为爱代言"为主题的"不让梦想咕咕叫"公益活动,在全体 ...

  9. 正睿2019省选附加赛 Day10 (这篇其实已经都咕咕了...)

    目录 2019.3.13 A.算算算(二项式定理 斯特林数) B.买买买 C.树树树 2019.3.13 比赛链接 A.算算算(二项式定理 斯特林数) 题目链接 \(x^k\)可以用二项式定理展开,需 ...

最新文章

  1. http有哪些请求方法
  2. 【测评】用这款神器2小时就撸完了1天工作量的代码!爽
  3. LeNet卷积神经网络
  4. jdeveloper12.1.3的安装与卸载
  5. 蓝墨云活动三种查找算法练习的分析博客
  6. 数学建模与数学实验3.4习题1
  7. 安信可nbiot模块_安信可wifi模块
  8. 关于nmap和traceroute在虚拟机里使用的问题
  9. 异军突起,私域流量才是真正的护城河(上)
  10. python爬取知乎热门话题及其回答(requests中session保持cookies的应用)
  11. 伦斯勒理工学院计算机科学专业强吗,伦斯勒理工学院有哪些专业处于世界顶尖水平?...
  12. Qt读写Excel--QXlsx设置字体格式、样式8
  13. C语言中的类型限定符有哪些?
  14. 微信小程序 修改radio样式
  15. Excel 的基本概念以及 Excel 文件的创建
  16. 手指静脉图像分类识别
  17. php 时间插件,PHP日期时间函数 - Discuz!-插件 - Discuz! 官方站 - Powered by Discuz!
  18. 网站设计源代码制作素材成品(风景 6页)___内嵌式
  19. 【网络安全】MS17-010“永恒之蓝”漏洞的利用
  20. 【Oracle】CBO优化详解

热门文章

  1. 视频教程-走入Vue 2.0-JavaScript
  2. GO语言集成开发工具环境JetBrains GoLand 2022
  3. 你应该知道的http
  4. 随笔一计:微信h5支付商家存在未配置的参数xxx
  5. ipad邮件qq收件服务器,iPad自带邮件功能收发邮件的过程
  6. 18 v-for中使用v-if结合template标签的使用
  7. Flask 的替代品 aiohttp 和 Quart
  8. Java 访问Hbase数据库
  9. Pycharm添加镜像源
  10. 锐捷——接口光电切换配置