codeforces676C Vasya and String
来源:互联网 发布:网络营销效果优化研究 编辑:程序博客网 时间:2024/04/30 01:18
High school student Vasya got a string of length n as a birthday present. This string consists of letters 'a' and 'b' only. Vasya denotes beauty of the string as the maximum length of a substring (consecutive subsequence) consisting of equal letters.
Vasya can change no more than k characters of the original string. What is the maximum beauty of the string he can achieve?
The first line of the input contains two integers n and k (1 ≤ n ≤ 100 000, 0 ≤ k ≤ n) — the length of the string and the maximum number of characters to change.
The second line contains the string, consisting of letters 'a' and 'b' only.
Print the only integer — the maximum beauty of the string Vasya can achieve by changing no more than k characters.
4 2abba
4
8 1aabaabaa
5
In the first sample, Vasya can obtain both strings "aaaa" and "bbbb".
In the second sample, the optimal answer is obtained with the string "aaaaabaa" or with the string "aabaaaaa".
题意:
给出一个长度为n的字符串,只有字符'a'和'b'。最多能改变k个字符,即把'a'变成'b'或把'b'变成'a'。
问改变后的最长连续相同字符的字串长度为多少。
话说开始我想dp来着,但是数据太大。。。后来看到别人写的题解才恍然大悟
思路:用两个指针,i=j=1,保持它们之间的a个数是k,算出最大值,初始化(i,j)然后保持它们之间b个数是k,算出最大值。#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<string>#include<vector>#include<stack>#include<set>#include<map>#include<queue>#include<algorithm>using namespace std;char c[100005];int pa[100005],pb[100005];int main(){int n,k;int i,j;scanf("%d %d",&n,&k);int left,right;getchar();for(i=1;i<=n;i++){scanf("%c",&c[i]);if(c[i]=='a')pa[i]=pa[i-1]+1;elsepa[i]=pa[i-1];if(c[i]=='b')pb[i]=pb[i-1]+1;elsepb[i]=pb[i-1];}left=1;right=1;int ans=0;while(right<=n){while(pa[right]-pa[left-1]<=k&&right<=n){right++;}ans=max(ans,right-left);left++;}left=right=1;while(right<=n){while(pb[right]-pb[left-1]<=k&&right<=n){right++;}ans=max(ans,right-left);left++;}printf("%d\n",ans); return 0;}
0 0
- codeforces676C. Vasya and String
- codeforces676C Vasya and String
- C. Vasya and String
- Vasya and String 取尺法
- Vasya and String
- Vasya and String CodeForces
- CF之Vasya and String
- codeforces 676C Vasya and String
- codeforces_676C. Vasya and String(二分)
- Codeforces 676C Vasya and String
- codeforces 676C. Vasya and String
- Codeforces 676 C. Vasya and String
- 【CodeForces 676】C - Vasya and String
- Vasya and String(尺取 贪心)
- Codeforces Round #354 (Div. 2)676C. Vasya and String
- Codeforces Round #354 (Div. 2) C .Vasya and String
- cf676c Vasya and String 尺取法裸题
- Codeforces 676C Vasya and String (两点法)
- ios10 关于app info.plist权限设置
- ubuntu下运行ROS时碰到的时间问题
- 隐藏标题栏状态栏的办法
- 区块链技术开发发展到现在用途都在哪些方面
- SuperMap iServer MongoDB分布式切图缓存迁移
- codeforces676C Vasya and String
- concurrent.atomic包下的类AtomicInteger的使用
- NPAPI插件运行流程分析
- Android 4.0 Launcher2源码分析——导入eclipse进行调试
- 有关网络协议的一点学习
- Gradle for Android 第二篇( Build.gradle入门 )
- sleep() 和 wait() 有什么区别?
- JSON.parse()和JSON.stringify()
- 是什么让C#成为最值得学习的编程语言