ACM思维题训练集合
A colored stripe is represented by a horizontal row of n square cells, each cell is pained one of k colors. Your task is to repaint the minimum number of cells so that no two neighbouring cells are of the same color. You can use any color from 1 to k to repaint the cells.

Input
The first input line contains two integers n and k (1 ≤ n ≤ 5·105; 2 ≤ k ≤ 26). The second line contains n uppercase English letters. Letter "A" stands for the first color, letter "B" stands for the second color and so on. The first k English letters may be used. Each letter represents the color of the corresponding cell of the stripe.

Output

Print a single integer — the required minimum number of repaintings. In the second line print any possible variant of the repainted stripe.

Examples
Input
6 3
ABBACC

Output
2
ABCACA
Input

3 2
BBB
Output
1
BAB

题目很简单,类比平面图的四色定理,线性上有3色定理,即如果k>=3那么无论遇到什么情况AABB的时候,我们都可以将相同的变成第三种颜色,所以这里要特判K=2的时候,我一开始想了很久,就是不知道怎么处理,但是k=2的串只有ABABA……和BABABA……这两种情况,判断当前穿变成这两种那种花费少,就是答案了。

#include <bits/stdc++.h>
using namespace std;
int n, m, cnt = 0;
char check(char a, char b)
{for (char i = 'A'; i <= 'A' + m - 1; i++){if (i == a || i == b)continue;elsereturn i;}
}
int main()
{cin >> n >> m;string s;cin >> s;if (m == 2){int cnt1 = 0, cnt2 = 0;for (int i = 0; i < n; i++){if (s[i] != ('A' + (i % 2)))cnt1++;elsecnt2++;}if (cnt2 > cnt1){cout << cnt1 << endl;for (int i = 0; i < n; i++)if (i % 2 == 0)putchar('A');elseputchar('B');}else{cout << cnt2 << endl;for (int i = 1; i <= n; i++)if (i % 2 == 0)putchar('A');elseputchar('B');}puts("");return 0;}for (int i = 1; i < s.length();){if (s[i] == s[i - 1]){s[i] = check(s[i - 1], s[i + 1]);i = i + 2;cnt++;}elsei++;}cout << cnt << endl<< s << endl;
}

CF--思维练习--CodeForces - 219C Color Stripe (思维)相关推荐

  1. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)

    ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...

  2. 共享思维导图,协作型思维导图Leangoo

    共享思维导图,协作型思维导图Leangoo,可以导出导入XMind文件了,我们来看看如何操作: 进入leangoo官网:www.leangoo.com,登陆账号. 点击右上角"+" ...

  3. 3星|《终身成长》:成长型思维让人进步,固定型思维让人固步自封。有新意的励志书,但有锤子模式的嫌疑。...

    3星|<终身成长>:成长型思维让人进步,固定型思维让人固步自封.有新意的励志书,但有锤子模式的嫌疑. Posted on 2017-12-06 13:25 左其盛 阅读(145) 评论(0 ...

  4. 电子商务思维导图精品荟萃:电子商务思维导图大全[多图精品收藏]

    电子商务思维导图精品荟萃:电子商务思维导图大全[多图精品收藏] ------[连载之电子商务网站架构]访问量超过100万的电子商务网站技术架构 出处:http://jimmyli.blog.51cto ...

  5. PAT甲级1045 Favorite Color Stripe (30 分):[C++题解]最佳彩色带、DP、公共子序列变形

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这是一个公共子序列的问题.但是有点变式,序列a和序列b不是完全等价的,序列a的每个元素可以对应多个相同元素,而且有些元素可以不使用.比 ...

  6. 关于主机的思维导图_读《思维导图》系列丛书----我用思维导图做什么?

    多图预警! 作者简介:深圳一所公立高中的生物老师,日常是备备课,读读书,打打球,吹吹牛. 我将从以下几个方面介绍我是如何使用思维导图的. 图1:介绍我如何使用思维导图的思维导图 1.我平时用思维导图来 ...

  7. 【PAT - 甲级1045】Favorite Color Stripe(30分)(dp,LIS类问题)

    题干: Eva is trying to make her own color stripe out of a given one. She would like to keep only her f ...

  8. 大数据思维是企业互联网化的思维内核

    文章讲的是大数据思维是企业互联网化的思维内核,"互联网+"给传统产业带来的变革将是一个持续升且不可逆的过程.随着"互联网+"的深入,诸多的新技术.新业态将会显现 ...

  9. pat1045. Favorite Color Stripe (30)

    1045. Favorite Color Stripe (30) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...

最新文章

  1. php的wsgi框架结构,理解 WSGI 框架
  2. my understanding for love
  3. C++编译单元 内部链接 外部链接
  4. 机器学习第十篇:如何评价模型效果评估
  5. 一文玩转 EhCache 缓存框架!
  6. 95后大学生利用漏洞免费吃肯德基获刑;Linux内核初步支持苹果M1;Android Studio 4.2 发布|极客头条...
  7. linux 邮件服务器 并给外网发送邮件,Linux下判断公网IP是否改变,并发送邮件通知...
  8. 关于CreadThread()与CloseHandle()
  9. 最好用的屏幕分辨率修改器:SwitchResX for Mac
  10. win10服务器账号和密码,WIN10提示输入管理员用户和密码
  11. 刘宇凡:让白茶陪你一起熬夜看世界杯
  12. 浅谈无人值守改造技术在矿山供电系统的应用研究
  13. 曾经决心永不做游戏 但为何阿里巴巴的游戏之心一直死不了?
  14. uni-app海报(合成图片)demo
  15. linux格式化只读u盘,linux下FAT32格式u盘只读的问题及解决方法
  16. 滑尺计算——丈量宇宙的直尺
  17. #五、再一种正方:2
  18. 计算机视觉相关学习项目(上)——附MATLAB源代码
  19. Vue directives 自定义局部指令中调用 method 中的方法
  20. 计算机取证(Windows)FTK+X-Way取证复制

热门文章

  1. JDBC连接MySQL数据库及示例
  2. 在控制台中输出 出现SIGBAT或者EXC_BAD_ACCESS的原因的方法
  3. Unable to create '.git/index.lock': File exists
  4. java分割字符串_Java中分割字符串
  5. [04-05]box框模型(Box Model)定义了元素框处理元素内容、内边距、边框和外边距的方式...
  6. 协议类接口 - NAND
  7. eclipse中如何将中文乱码的class文件改为可读
  8. 用友企业互联网服务产品闪亮2016中国互联网大会
  9. Puppet实战笔记
  10. sdut 1730 数字三角形问题