rainbow与freda染旗
rainbow与freda染旗
★ 输入文件:shimi.in
输出文件:shimi.out
简单对比
时间限制:1 s 内存限制:128 MB
-
【题目背景】
Freda:aya Rainbow,怎么没看见你城堡挂旗子呀?
Rainbow:我城堡旗子太难看了肿么办T_T
Freda:lala~那好办,我可以帮你染色呀~
Rainbow:嗯嗯,那就试试吧~【题目描述】
Rainbow城堡的旗子是一个有N个基本单位的长条>_<,每个单位都会被染成前m个大写字母当中的一个颜色。可是,Rainbow认为,两个相邻的单位有相同的颜色很难看的说。所以,Rainbow需要改动一些单位的颜色,使得不存在两个相邻的单位颜色相同。当然了,那些被改动的单位改动之后的颜色也是前m个大写字母当中的一个。Rainbow想请你帮忙计算,它最少要改动多少个单位的颜色才能让旗子好看呢?
【输入格式】
第一行两个整数N、m,表示旗子组成的基本单位数目和颜色的范围。
接下来一行一个长度为N的字符串,字符串的每个字符都是在前m个大写字母的范围内的,表示Rainbow的旗帜。【输出格式】
一行一个整数表示Rainbow最少改动的单位数目。
【样例输入】
6 3 ABBACC
【样例输出】
2
//某大神说用DP,是出题人的失误导致这个题的正解成了模拟 /**** 思路: 首先,考虑只有两种颜色的情况,只能是A和B交替组合,我们只需要将ABABAB...AB或BABAB...ABA与原来的进行比较,看看哪个相符程度高, 然后再求出改变的最少的位置数; 其次,考虑三种及三种以上颜色的情况,一面旗子至多有两个邻居,也就是说使用三种颜色完全可以使所有旗子与相邻的不同色。 如果出现两面相邻的旗子同色,我们只需要改后面的那一面旗子,计数,并将旗子进行标记。 如果不标记,当出现AAABCB...这种情况时,答案就会有错误,模拟时,会将第二面和第三面都改变。 ****/ #include <stdio.h>int main() {freopen("shimi.in","r",stdin);freopen("shimi.out","w",stdout);int n,m;int i,j,k;char c[100010]={'\0'};scanf("%d%d",&n,&m);scanf("%s",c);if(m==2){char temp='A';int d=0;int s1=0,s2=0;for(i=0;i<n;i++){if(c[i]!=temp)s1++;if(d)temp='A';elsetemp='B';d=1-d;//printf("%c",temp);}temp='B';d=1;for(i=0;i<n;i++){if(c[i]!=temp)s2++;if(d)temp='A';elsetemp='B';d=1-d;//printf("%c",temp);}printf("%d\n",s1<s2?s1:s2);}else{int s=0;for(i=1;i<n;i++){if(c[i]==c[i-1]){s++;c[i]='-1';}}printf("%d\n",s);}return 0; }
rainbow与freda染旗相关推荐
- 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 753 Solved: 444 [Submit][Status][Discuss] ...
- 洛谷P4147玉某宫(最大矩阵好题)
题目描述 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda. 现在freda要在这里卖萌...它要找一块矩形土地,要求 ...
- BZOJ 3039: 玉蟾宫( 悬线法 )
最大子矩阵...悬线法..时间复杂度O(nm) 悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ----------------------- ...
- 18.8.20 考试总结
铁塔 (tower.pas/c/cpp) 题目描述 Rainbow 和Freda 要在Poetic Island 市的一座山脚下盖房子定居了--盖房子需要钢材 ,幸运的是,这里有排成一行的n 座废弃的 ...
- Test 2018-07-19 二中集训
铁塔 $ (tower.pas/c/cpp) $ 原题:$ TYVJ 「Poetize8」Tower $ $ \rightarrow $ 戳我进TYVJ原题 题目描述 $ Rainbow $ 和 $ ...
- bzoj 3039: 玉蟾宫(悬线法)
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 975 Solved: 562 [Submit][Status][Discuss] ...
- 洛谷P4147 玉蟾宫(单调栈解决)
题目 题目链接 题目背景 有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成 N\times ...
- CODEVS 2491 玉蟾宫
题目描述 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表 ...
- BZOJ[3039]玉蟾宫 悬线法
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3039 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山 ...
最新文章
- 【通俗理解线性代数】 -- 矩阵的等价与相似
- vue-cli3 第三版安装搭建项目
- CNN交通场景解析--Spatial as Deep: Spatial CNN for Traffic Scene Understanding
- 浅谈csrf攻击以及yii2对其的防范措施
- mysql 模拟序列_【原创】MySQL 模拟PostgreSQL generate_series 表函数
- 第二章--电商设计表订单实体-电商项目
- python画50个图-python绘制多个子图的实例
- PPPOE宽带接入技术及常见故障分析
- linux centos7 下ruby 下载安装
- Win10 - 使用‘Alt+Tab’不能切换窗口及更改切换风格
- C语言打印菱形超详细版本,逐句解析
- 手把手教你如何自学计算机,绝对的干货满满!!!
- Java、数据库等面试题大全
- Google SketchUp SDK
- 手机的CPU为什么要区分大小核?
- Idea工具如何使用
- proceed with launch?解决办法
- App ID注册地址
- matlab quiver一维矢量图,Matlab quiver函数用法 - 画矢量箭头图
- 什么是RIA?介绍几种RIA客户端开发技术