首页 > 其他分享 >[ABC329C] Count xxx 题解

[ABC329C] Count xxx 题解

时间:2023-11-24 19:47:45浏览次数:36  
标签:Count 子串 字符 int 题解 xxx long 字符串 define

插曲

因为本人看错了题面,买看到一个子串包含一种字母,所以切完 D 和 E 才回来发现很简单。

问题翻译

给你一个长度为 \(N\) 的字符串 \(S\),由小写英文字母组成。

求 \(S\) 的非空子串中有多少个是一个字符的重复。在这里,作为字符串的两个子串是相等的,即使它们是以不同的方式得到的,也加以区分。

\(S\) 的非空子串是通过删除 \(S\) 开头的零个或多个字符和结尾的零个或多个字符得到的长度至少为一个的字符串。例如,ababcabc 的非空子串,而 ac 和空字符串则不是。

分析

如果有一个字符串 AAABAA,那么 AAA 这个子串会重复计算过。所以我们只需要计算每一个字符最长的连续长度。

于是我们可以开一个 \(ans\) 数组,然后维护这每一个字符的最长连续长度,最终答案就是 \(ans\) 数组中的和即可。

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define pii pair<int,int>
#define fir first
#define se second
#define endl '\n'
#define debug puts("AK IOI")
using namespace std;
int n;
string s;
int ans[30];
int main(){
	cin >> n >> s;
	s=' '+s;
	int res=0;
	for(int i = 1;i <= n;i++){
		if(s[i] != s[i-1]){
			res=0;
		}res++;
		ans[s[i]-'a'] = max(ans[s[i]-'a'],res);
	}
	int cnt=0;
	for(int i=0;i <=26;i++){
		cnt+=ans[i];
	}cout<<cnt;
	return 0;
}

标签:Count,子串,字符,int,题解,xxx,long,字符串,define
From: https://www.cnblogs.com/gsczl71/p/17854594.html

相关文章

  • [ABC329D] Election Quick Report 题解
    题目翻译有一场选举,要从\(N\)名候选人中选出一名获胜者,候选人编号为\(1,2,\ldots,N\),共有\(M\)张选票。每张选票正好投给一位候选人,其中\(i\)票投给了候选人\(A_i\)。选票将按照从第一张到最后一张的顺序进行统计,每张选票统计完毕后,将更新并显示当前的获胜者。得票......
  • AT_abc329_e [ABC329E] Stamp 题解
    题目翻译给你两个字符串:\(S\)由大写英文字母组成,长度为\(N\);\(T\)也由大写英文字母组成,长度为\(M\),小于\(N\)。有一个长度为\(N\)的字符串\(X\),它只由#字符组成。请判断是否有可能通过执行以下任意次数的操作使\(X\)与\(S\)匹配:在\(X\)中选择\(M\)个连续字符,并......
  • 以精确反馈促进学生编程逻辑和问题解决意识:一种基于两层测试的在线编程训练方法
    (PromotingStudents’ProgrammingLogicandProblem-SolvingAwarenessWithPrecisionFeedback:ATwo-TierTest-BasedOnlineProgrammingTrainingApproach)DOI:10.1177/07356331221087773一、摘要研究目的:培养学生的计算机编程技能已成为全球重要的教育问题。然而,学......
  • 洛谷 P4872 OIer们的东方梦 题解
    前言一个下午,一个晚上,一个早上,可以算是一天了吧,终于调出了这道题,纪念一下吧!!!食用更佳。这道题其实就是一道简简单单的BFS模(du)板(liu)题。说难不难,简单不简单,虽然没有难的算法,但是就是码量一百多行,比较难调。题目难度绿,思维难度橙,代码难度蓝。真是个绝世好题。题目意思就是一......
  • 洛谷P3161 [CQOI2012] 模拟工厂题解
    P3161[CQOI2012]模拟工厂题解。题目其实发现这是一道状压,发现这道题是一道数学题,其实就很简单了。对于每一次的订单我们可以设:\(time\)为距离下一个订单的时间。\(num\)为这个订单要生产的数量。\(x\)为生产能力。\(y\)的时间可以用来提高工厂的生产力。那我们就可以得......
  • Ubuntu20.04 安装后部分问题解决方案
    安装搜狗输入法搜狗官方有教程:https://shurufa.sogou.com/linux/guideUbuntu与Windows时间不一致的问题安装ntpdate:sudoapt-getinstallntpdate校准时间:sudontpdatetime.windows.com将时间更新到硬件上:sudohwclock--localtime--systohc单击任务栏图标使窗......
  • [ARC117E] Zero-Sum Ranges 2题解
    题解前言个人认为官方题解写得最为详细、干净、清楚,如果有意向阅读外文版的题解的话,还是推荐去读一读:Editorial-AtCoderRegularContest117本文属于转载(?),有一些自己的思考过程,希望有帮助。题意有多少个长度为\(2N\)的序列\(A\)满足:序列\(A\)包含\(N\)个\(+1\)......
  • P9779_[HUSTFC 2023] 不定项选择题_题解
    #[rt](https://www.luogu.com.cn/problem/P9779)#题目#####有一道共n个选项的不定项选择题,它的答案至少包含一个选项,由于题目与选项的内容晦涩难懂,你打算通过尝试每一种可能的答案来通过这道题。#####初始时所有选项都没有被勾选,你可以执行任意次下述操作:-###勾选一个当前......
  • 【题解 P2839】 middle
    [国家集训队]middle题目描述一个长度为\(n\)的序列\(a\),设其排过序之后为\(b\),其中位数定义为\(b_{n/2}\),其中\(a,b\)从\(0\)开始标号,除法下取整。给你一个长度为\(n\)的序列\(s\)。回答\(Q\)个这样的询问:\(s\)的左端点在\([a,b]\)之间,右端点在\([c,d]\)......
  • CF1864D 题解
    我们注意到对如图倒三角形上的所有点操作都会影响到目标点。那么我们可以维护两个前缀和,第一个前缀和表示如下的点是否操作第二个前缀和表示这些点是否操作这样我们求出了前缀和之后,将两个前缀和异或一下就知道该点是否要操作了。#include<bits/stdc++.h>usingnamespace......