zoukankan      html  css  js  c++  java
  • Codeforces 1105B:Zuhair and Strings(字符串水题)

    time limit per test: 1 second
    memory limit per test: 256 megabytes
    input: standard input
    output: standard output

    Given a string ss of length nn and integer k (1kn)k (1≤k≤n). The string ss has a level xx, if xx is largest non-negative integer, such that it’s possible to find in ss:

    • xx non-intersecting (non-overlapping) substrings of length kk,
    • all characters of these x substrings are the same (i.e. each substring contains only one distinct character and this character is the same for all the substrings).

    A substring is a sequence of consecutive (adjacent) characters, it is defined by two integers ii and j (1ijn)j (1≤i≤j≤n), denoted as s[ij]s[i…j] = “sisi+1sjs_is_{i+1}…s_j”.

    For example, if k=2k=2, then:

    the string “aabb” has level 11 (you can select substring “aa”),
    the strings “zzzz” and “zzbzz” has level 22 (you can select two non-intersecting substrings “zz” in each of them),
    the strings “abed” and “aca” have level 00 (you can’t find at least one substring of the length k=2k=2 containing the only distinct character).
    Zuhair gave you the integer kk and the string s of length nn. You need to find xx, the level of the string ss.

    Input

    The first line contains two integers nn and k (1kn2105)k (1≤k≤n≤2⋅10^5) — the length of the string and the value of kk.

    The second line contains the string ss of length n consisting only of lowercase Latin letters.

    Output

    Print a single integer xx — the level of the string.

    Examples

    input
    8 2
    aaacaabb
    output
    2
    input
    2 1
    ab
    output
    1
    input
    4 2
    abab
    output
    0

    Note

    In the first example, we can select 22 non-intersecting substrings consisting of letter ‘a’: “(aa)ac(aa)bb”, so the level is 22.

    In the second example, we can select either substring “a” or “b” to get the answer 11.

    题意

    给出一个长度为nn的字符串,在字符串中查找连续出现kk次的字母,中间不能有重叠,连续出现kk次的字母最多出现了几次

    AC代码

    暴力查找即可,注意k=1k=1的情况

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <math.h>
    #include <limits.h>
    #include <map>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <set>
    #include <string>
    #include <time.h>
    #define ll long long
    #define ull unsigned long long
    #define ms(a,b) memset(a,b,sizeof(a))
    #define pi acos(-1.0)
    #define INF 0x7f7f7f7f
    #define lson o<<1
    #define rson o<<1|1
    #define bug cout<<"-------------"<<endl
    #define debug(...) cerr<<"["<<#__VA_ARGS__":"<<(__VA_ARGS__)<<"]"<<"
    "
    const double E=exp(1);
    const int maxn=1e6+10;
    const int mod=1e9+7;
    using namespace std;
    char ch[maxn];
    int a[maxn];
    bool cmp(int a,int b)
    {
    	return a>b;
    }
    int main(int argc, char const *argv[])
    {
    	ios::sync_with_stdio(false);
    	int n,k;
    	cin>>n>>k;
    	cin>>ch;
    	int res=1;
    	for(int i=0;i<n;i++)
    	{
    		if(k==1)
    			a[ch[i]-'a']++;
    		else
    		{
    			if(ch[i]==ch[i+1])
    				res++;
    			else
    				res=1;	
    			if(res==k)
    			{
    				a[ch[i]-'a']++;
    				res=1;
    				i+=1;
    			}
    		}
    		
    	}
    	sort(a,a+26,cmp);
    	cout<<a[0]<<endl;
    	return 0;
    }
    
  • 相关阅读:
    2019-9-10做题记录
    2019-9-9做题记录
    【HAOI2008】硬币购物
    【SCOI2010】生成字符串
    第18讲——ActiveX控件
    第20讲 HOOK和数据库编程
    第19讲——动态链接库
    2016-5-22 百度之星第三题--瞬间移动
    2016-4-25 完美世界-实习--小萌的包裹
    第3章 拍摄UFO——单一职责原则
  • 原文地址:https://www.cnblogs.com/Friends-A/p/10324309.html
Copyright © 2011-2022 走看看