Codeforces Round #533 (Div. 2)B. Zuhair and Strings

6870 단어 수필
제목 링크
  • 제목: 첫 번 째 줄 은 두 개의 정수 n 과 k (1 ≤ k ≤ n ≤ 2 * 8901, 1 0 5) (1 ≤ k ≤ n ≤ 2 * 8901, 10 ^ 5) (1 ≤ k ≤ n ≤ 2 * 8901, 105) 를 드 립 니 다.
  • 사례:
  • //input       
    8 2
    aaacaabb
    //output       
    2
    //  ,         aa c b   aa,        aa c b   aa。
    
  • 문제 풀이 방향: 문제 의 뜻 에 따라 우 리 는 답 이 반드시 a 에서 z 사이 의 26 글자 중 하나 라 는 것 을 알 수 있다.따라서 우 리 는 하나의 vector 로 26 크기 의 배열 을 만 들 었 습 니 다. 그 안의 값 은 단락 마다 이 자 모 를 연속 할 때 길이 가 얼마 입 니까?최종 답 은 각 배열 로 k 의 정수 와 26 의 배열 에서 가장 큰 값 을 취하 면 된다
  • .
  • 코드 는 다음 과 같다.
  • #include
    #define endl '
    '
    using namespace std; typedef long long ll; string s; int n,k; vector<int>G[26];//26 int main(){ cin>>n>>k>>s;s+="A"; int ans=0; int h=1;char c=s[0]; // for(int i=1;i<=n;i++){ if(s[i]!=c){ G[c-'a'].push_back(h); h=1;c=s[i]; }else h++; } // 26 for(int i=0;i<26;i++){ int h=0; // for(int j=0;j<G[i].size();j++){ h+=G[i][j]/k; } ans=max(ans,h); } cout<<ans<<endl; return 0; }

    좋은 웹페이지 즐겨찾기