首页 > 其他分享 >CodeForces 1105B Zuhair and Strings(思维 + 枚举)

CodeForces 1105B Zuhair and Strings(思维 + 枚举)

时间:2023-05-26 15:06:04浏览次数:61  
标签:1105B int ans CodeForces ret char Zuhair cnt include


传送门

题目大意就是给你一个字符串,还有一个等级K,K的具体含义就是连续的相同的字符串的个数,题目就是要求长度为k的,字符一样的子串有几个,如果k == 2 就是比如aa, bb, cc, dd, .....  这样的,注意不能重叠。

因为题目给的数据范围在2e5,所以枚举从a到z,然后取最大值就好了。

代码如下

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
    int n,k,ret = 0,cnt;
    char str[200010];
    scanf("%d %d",&n,&k);
    scanf("%s",str);
    int ans=0;
    for(int x = 0;x < 26; x++)
    {
        char ch = (char)(x + 'a');
        ret = 0,cnt = 0;
        for(int i = 0;i < n; i++)
        {
            if(str[i] != ch)
            {
                int y = cnt / k;
                ret += y;
                cnt = 0;
            }
            else
                cnt++;
        }
        int y = cnt / k;
    	ret += y;
    	ans=max(ret,ans);
    }
    cout << ans;
    return 0;
}

 

标签:1105B,int,ans,CodeForces,ret,char,Zuhair,cnt,include
From: https://blog.51cto.com/u_16131191/6356108

相关文章

  • Codeforces Round #553 (Div. 2) A,B,C,D
    A:MaximandBiology传送门因为数据范围比较小,就暴力就完事儿了。#include<bits/stdc++.h>usingnamespacestd;constintINF=0x3f3f3f3f;intconvert(chara,charb){if(a==b)return0;if(a>b)swap(a,b);intx=b-a;a=......
  • CodeForces 1108C Nice Garland(DFS)
    传送门题目大意就是给你一个由'R','G','B'三个字母组成的字符串,然后这个字符串需要满足任意相邻的三个字符不能相同,如果不满足则需要你对其进行更改,然后输出更改的次数和更改完的字符串。具体的思路就是枚举"RGB"这三个的组合,显然只有3!个,然后依次计算步数代码如下#include<iostream>......
  • Codeforces Round #552 (Div. 3) 1154
    A:传送门就是解个方程,也没什么说的#include<bits/stdc++.h>usingnamespacestd;intmain(){inta[4],x,b,c;for(inti=0;i<4;i++)cin>>a[i];sort(a,a+4);c=a[3]-a[0];x=a[1]-c;b=a[2]-c;cout<<x......
  • Educational Codeforces Round 149 (Rated for Div. 2)
    EducationalCodeforcesRound149(RatedforDiv.2)A-GrasshopperonaLine思路:只有两种情况,x整除k时为x-1和1,否则为xvoidsolve(){intx,k;cin>>x>>k;if(x%k==0){cout<<"2\n"<<x-1<<&qu......
  • Codeforces 1439E - Cheat and Win
    模拟赛放了道*3500,结果全场都切了,非常恐怖。首先考虑怎么样的树是合法的,打个表发现SG函数值为\(\sum_{d}2^d·(\text{深度为d的点个数}\bmod2)\),换句话说后手必胜当且仅当每种深度的点数都是偶数。于是实际上我们只用建出虚树之后树上差分一下求出每个点被覆盖的情况,进而......
  • 【题解】Codeforces Round 737 (CF1557)
    VP情况:solve:4/5rank:431st评价:VP了一下,我这个shaberB直接5发罚时,耽误了二十多分钟,以及被D各种细节差点搞死。A.EzzatandTwoSubsequences(*800)题目描述:给定一个序列,将其分为\(2\)个组,要求这两个组的平均值之和最大,组内的数不要求在原序列中连续。题目分析:我们......
  • CodeForces 1827E Bus Routes
    洛谷传送门CF传送门比较神奇的题。定一个非叶子\(r\)为根。显然只用判断两个叶子是否可达。求出每个叶子向上能一步跳到的深度最浅的点\(p_i\),那么如果\(p_i\)不在一条链上就无解,因为两条路径没有交点。然后只用判断\(p_i\)最深的叶子的\(p_i\)能不能一步到达其他......
  • Codeforces Gym 103119B - Boring Problem(高斯消元)
    考虑建出AC自动机,朴素做法是高斯消元,\(f_i=\sum\limits_{j=0}^{k-1}f_{to_{i,j}}p_j+1\),复杂度\(O(n^3m^3)\),不能接受。考虑优化高斯消元的过程,我们定义以下节点为“关键点”:根节点对于一个trie树(也就是未经过AC自动机getfail操作得到的树)上有超过两个儿子的节点\(x......
  • Codeforces Round 862 (Div. 2) A-D
    CodeforcesRound862(Div.2) A.WeNeedtheZerointa[N];voidsolve(){intn=read(),sum;for(inti=1;i<=n;i++){a[i]=read();if(i==1)sum=a[i];elsesum^=a[i];}if(n%2)cout<<sum<<'\n'......
  • Codeforces Round 874 (Div. 3) A-G
    比赛地址A.MusicalPuzzle题意:给出一个字符串,求有多少个不同的长度为2的子串Solution直接set存即可voidsolve(){ intn;cin>>n; strings;cin>>s; set<string>st; for(inti=0;i<n-1;i++) { st.insert(s.substr(i,2)); } cout<<st.size()<<"\n"......