CSP3--T4咕咕东学英语
题意:
咕咕东很聪明,但他最近不幸被来自宇宙的宇宙射线击中,遭到了降智打击,他的英语水平被归零了!这一切的始作俑者宇宙狗却毫不知情!
此时咕咕东碰到了一个好心人——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咕咕东学英语相关推荐
- 计算机研究生期间学英语,2022考研计算机程序设计:咕咕东学英语
1.题目描述 咕咕东很聪明,但他最近不幸被来自宇宙的宇宙射线击中,遭到了降智打击,他的英语水平被归 零了!这一切的始作俑者宇宙狗却毫不知情! 此时咕咕东碰到了一个好心人--TT,TT在吸猫之余教咕咕东 ...
- [csp模拟2]T4——咕咕东的奇妙序列
文章目录 题意 Input Output 输入样例 输出样例 提示 分析 总结 代码 题意 咕咕东 正在上可怕的复变函数,但对于稳拿A Plus的 咕咕东 来说,她早已不再听课,此时她在睡梦中 突然想 ...
- 【Week9 作业】A - 咕咕东的目录管理器、B - 东东学打牌、C - 签到题,独立思考哈
A - 咕咕东的目录管理器 题意: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标, ...
- 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器
题目描述: 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响,时不时发生故障,他受不了了,想要写一个高效易用零bug的操作系统 -- 这工程量太大了,所以他定了一个小目标,从实现一个目录管理器开始 ...
- csp模拟测试_1 T1咕咕东的奇遇和T2咕咕东想吃饭
T1咕咕东的奇遇 问题描述 咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环.这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a.咕咕东每次可以顺时针或者逆时针旋转一格. ...
- CSP补题—A—咕咕东的奇遇—B—咕咕东想吃饭
一.A-咕咕东的奇遇 题目描述: 咕咕东是个贪玩的孩子,有一天,他从上古遗迹中得到了一个神奇的圆环.这个圆环由字母表组成首尾相接的环,环上有一个指针,最初指向字母a.咕咕东每次可以顺时针或者逆时针旋转 ...
- [比赛|考试] 咕咕掉的一些比赛总结
咕咕掉1:9月9日上午nowcoder tg组1 咕咕掉2:9月14日晚上wannafly (以上是没有写总结的比赛,考得都很惨,更新不更新看心情,如果有更新会在本文里更新的) 9.12 下午校内 1 ...
- 不让登陆_百万伙伴争代言 不让梦想咕咕叫 中国太保寿险公益活动提前117天汇聚300万颗爱心...
2021年1月4日,中国太保旗下中国太保寿险继"首月红"大捷后再传喜讯,以"攀登30A 为爱代言"为主题的"不让梦想咕咕叫"公益活动,在全体 ...
- 正睿2019省选附加赛 Day10 (这篇其实已经都咕咕了...)
目录 2019.3.13 A.算算算(二项式定理 斯特林数) B.买买买 C.树树树 2019.3.13 比赛链接 A.算算算(二项式定理 斯特林数) 题目链接 \(x^k\)可以用二项式定理展开,需 ...
最新文章
- http有哪些请求方法
- 【测评】用这款神器2小时就撸完了1天工作量的代码!爽
- LeNet卷积神经网络
- jdeveloper12.1.3的安装与卸载
- 蓝墨云活动三种查找算法练习的分析博客
- 数学建模与数学实验3.4习题1
- 安信可nbiot模块_安信可wifi模块
- 关于nmap和traceroute在虚拟机里使用的问题
- 异军突起,私域流量才是真正的护城河(上)
- python爬取知乎热门话题及其回答(requests中session保持cookies的应用)
- 伦斯勒理工学院计算机科学专业强吗,伦斯勒理工学院有哪些专业处于世界顶尖水平?...
- Qt读写Excel--QXlsx设置字体格式、样式8
- C语言中的类型限定符有哪些?
- 微信小程序 修改radio样式
- Excel 的基本概念以及 Excel 文件的创建
- 手指静脉图像分类识别
- php 时间插件,PHP日期时间函数 - Discuz!-插件 - Discuz! 官方站 - Powered by Discuz!
- 网站设计源代码制作素材成品(风景 6页)___内嵌式
- 【网络安全】MS17-010“永恒之蓝”漏洞的利用
- 【Oracle】CBO优化详解