Codeforces 219C Color Stripe 贪心
来源:互联网 发布:数学作图软件 编辑:程序博客网 时间:2024/05/22 11:46
点击打开链接
题意:给出一个字符串,只包含k种字符,问最少修改多少个字符(不增长新的种类)能够得到一个新的字符串,这个字符串满足相邻的字符没有相同的。
最多有n-1对要修改,
当k>=3 s[i]!=s[i-1] 则修改s[i]最优,因为可以消去的对数>=1
当k==2时 AAB,BBB 显然无法贪心 因为k==2的合法情况只有"ABABAB","BABABA"统计错误少的方案输出即可
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e5+20;int n,k;char s[N];int a[N];int main(){while(cin>>n>>k){scanf("%s",s+1);int cnt=0;for(int i=1;i<=n;i++)a[i]=s[i]-'A';//要么为ABABAB,BABABA统计错位个数int f=0,S=0; if(k==2){for(int i=1;i<=n;i++){if(i%2&&s[i]=='A'||(i%2==0&&s[i]=='B'))S++;if(i%2&&s[i]=='B'||(i%2==0&&s[i]=='A'))f++;}if(f<S){cout<<f<<endl; for(int i=1;i<=n;i++){if(i%2)printf("%c",'A');elseprintf("%c",'B');}}else{cout<<S<<endl;for(int i=1;i<=n;i++){if(i%2)printf("%c",'B');elseprintf("%c",'A');}}cout<<endl;continue;}a[0]=-1;//最多有n-1对相同 for(int i=1;i<=n;i++){if(a[i]==a[i-1]){cnt++;//改中间a[i],使得消除对数>=1 a[i]=(a[i]+1)%k;if(a[i]==a[i+1]){//改成与后一个不同颜色 a[i]=(a[i]+1)%k;}}}cout<<cnt<<endl;for(int i=1;i<=n;i++)printf("%c",a[i]+'A');cout<<endl;}return 0;}
0 0
- CodeForces 219C Color Stripe (贪心)
- codeforces 219C Color Stripe(贪心)
- Codeforces 219C Color Stripe 贪心
- CodeForces 219C Color Stripe
- Color Stripe--codeForces 219C
- codeforces 219C Color Stripe
- codeforces C. Color Stripe
- codeforces 219C C. Color Stripe(dp)
- Codeforces 219C C. Color Stripe【dp+输出路径】
- 219C - Color Stripe-模拟
- Codeforces Round #135 (Div. 2)C. Color Stripe
- Codeforces Round #135 (Div. 2)-C. Color Stripe
- CodeForces 18C - Stripe
- Codeforces Round #135 (Div. 2) C. Color Stripe(字符串dp)
- CodeForces 21 C Stripe 2
- CodeForces 21C Stripe 2 (简单题)
- CodeForces 18C Stripe (简单题)
- CodeForces 21C Stripe 2 构造题
- Javascript模块化编程(二):AMD规范
- Hbase学习8_ 启动hbase 报错 Address already in use 的解决办法
- Linux下GIPO的操作
- Android随笔之——PackageManager详解
- 继承
- Codeforces 219C Color Stripe 贪心
- 很好的一道思维题目(有坑点的)
- [Maven] Missing artifact (解决办法),eclipse错误artifact丢失
- 你所不知的 CSS ::before 和 ::after 伪元素用法
- Python - 下载视频网站的视频
- iOS 静默推送实现(推送背景为个推)
- KVM学习:基础功能
- Spring Web MVC
- windows操作工具或技巧集合