码迷,mamicode.com
首页 > 其他好文 > 详细

题解 CF1216A 【Prefixes】

时间:2019-09-21 21:18:12      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:||   题解   cst   include   read   +=   getch   main   相等   

题目大意:给你一个长度为$n$($n$为偶数)的字符串,且这个字符串仅由$‘a‘$与$‘b‘$两种字符组成,要你用最少的操作次数使得 $s[i]!=s[i-1] (i/2=0,1≤i≤n)$(若字符串从1开始),并输出更改后的串

大水题?两个两个一跳,相等就把其中一个换一下。

上代码:

#include<cstdio>

inline int read(){
	int r=0,f=1;
	char c=getchar();
	while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1;c=getchar();}
	while(c>=‘0‘&&c<=‘9‘)r=(r<<1)+(r<<3)+c-‘0‘,c=getchar();
	return r*f;
}

int n,ans;

char s[200002],ab[2]={‘a‘,‘b‘};

int main(){
	scanf("%d\n",&n);
	scanf("%s",s);
	for(int i=1;i<n;i+=2)
		if(s[i]==s[i-1])s[i-1]=ab[(s[i-1]-‘a‘)^1],ans++;//相等就换,操作数加1
	printf("%d\n%s",ans,s);
	return 0;
}

  

题解 CF1216A 【Prefixes】

标签:||   题解   cst   include   read   +=   getch   main   相等   

原文地址:https://www.cnblogs.com/wyzwyz/p/11564468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!