CF--思维练习--CodeForces - 219C Color Stripe (思维)
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 (思维)相关推荐
- CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)
ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...
- 共享思维导图,协作型思维导图Leangoo
共享思维导图,协作型思维导图Leangoo,可以导出导入XMind文件了,我们来看看如何操作: 进入leangoo官网:www.leangoo.com,登陆账号. 点击右上角"+" ...
- 3星|《终身成长》:成长型思维让人进步,固定型思维让人固步自封。有新意的励志书,但有锤子模式的嫌疑。...
3星|<终身成长>:成长型思维让人进步,固定型思维让人固步自封.有新意的励志书,但有锤子模式的嫌疑. Posted on 2017-12-06 13:25 左其盛 阅读(145) 评论(0 ...
- 电子商务思维导图精品荟萃:电子商务思维导图大全[多图精品收藏]
电子商务思维导图精品荟萃:电子商务思维导图大全[多图精品收藏] ------[连载之电子商务网站架构]访问量超过100万的电子商务网站技术架构 出处:http://jimmyli.blog.51cto ...
- PAT甲级1045 Favorite Color Stripe (30 分):[C++题解]最佳彩色带、DP、公共子序列变形
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这是一个公共子序列的问题.但是有点变式,序列a和序列b不是完全等价的,序列a的每个元素可以对应多个相同元素,而且有些元素可以不使用.比 ...
- 关于主机的思维导图_读《思维导图》系列丛书----我用思维导图做什么?
多图预警! 作者简介:深圳一所公立高中的生物老师,日常是备备课,读读书,打打球,吹吹牛. 我将从以下几个方面介绍我是如何使用思维导图的. 图1:介绍我如何使用思维导图的思维导图 1.我平时用思维导图来 ...
- 【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 ...
- 大数据思维是企业互联网化的思维内核
文章讲的是大数据思维是企业互联网化的思维内核,"互联网+"给传统产业带来的变革将是一个持续升且不可逆的过程.随着"互联网+"的深入,诸多的新技术.新业态将会显现 ...
- pat1045. Favorite Color Stripe (30)
1045. Favorite Color Stripe (30) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
最新文章
- php的wsgi框架结构,理解 WSGI 框架
- my understanding for love
- C++编译单元 内部链接 外部链接
- 机器学习第十篇:如何评价模型效果评估
- 一文玩转 EhCache 缓存框架!
- 95后大学生利用漏洞免费吃肯德基获刑;Linux内核初步支持苹果M1;Android Studio 4.2 发布|极客头条...
- linux 邮件服务器 并给外网发送邮件,Linux下判断公网IP是否改变,并发送邮件通知...
- 关于CreadThread()与CloseHandle()
- 最好用的屏幕分辨率修改器:SwitchResX for Mac
- win10服务器账号和密码,WIN10提示输入管理员用户和密码
- 刘宇凡:让白茶陪你一起熬夜看世界杯
- 浅谈无人值守改造技术在矿山供电系统的应用研究
- 曾经决心永不做游戏 但为何阿里巴巴的游戏之心一直死不了?
- uni-app海报(合成图片)demo
- linux格式化只读u盘,linux下FAT32格式u盘只读的问题及解决方法
- 滑尺计算——丈量宇宙的直尺
- #五、再一种正方:2
- 计算机视觉相关学习项目(上)——附MATLAB源代码
- Vue directives 自定义局部指令中调用 method 中的方法
- 计算机取证(Windows)FTK+X-Way取证复制
热门文章
- JDBC连接MySQL数据库及示例
- 在控制台中输出 出现SIGBAT或者EXC_BAD_ACCESS的原因的方法
- Unable to create '.git/index.lock': File exists
- java分割字符串_Java中分割字符串
- [04-05]box框模型(Box Model)定义了元素框处理元素内容、内边距、边框和外边距的方式...
- 协议类接口 - NAND
- eclipse中如何将中文乱码的class文件改为可读
- 用友企业互联网服务产品闪亮2016中国互联网大会
- Puppet实战笔记
- sdut 1730 数字三角形问题